Bonjour,
Je travaille actuellement sur un projet et je dois convertir des fichiers csv en base de données mysql. J'utilise pour ça la fonction LOAD DATA INFILE qui fonctionne bien. Voici ce que contient mon fichier csv exemple : 1,James,Smith,19750101
2,Meggie,Smith,19790122
3,Robert,Smith,20071101
4,Alex,Smith,20040202
Voici ensuite mon fichier sql :
USE test
DROP TABLE IF EXISTS CSVTest;
CREATE TABLE IF NOT EXISTS CSVTest (
id INT NOT NULL,
nom varchar(255) NOT NULL,
prenom varchar(255) NOT NULL,
date datetime NOT NULL,
PRIMARY KEY (id)
)ENGINE=MyISAM DEFAULT CHARSET=latin1;
LOAD DATA INFILE 'C:\\csvtest.txt'
INTO TABLE csvtest
FIELDS TERMINATED BY ','
La création de la table et l'insertion se passe nickel sauf que je récolte 3 warnings à la fin :
Warning 1264 Out of range value for column 'date' at row 1
Warning 1264 Out of range value for column 'date' at row 2
Warning 1264 Out of range value for column 'date' at row 3
Les dates des 3 premières lignes sont à 0000-00-00 00:00:00. Pas de problème en revanche avec la ligne 4. Impossible de trouver d'où vient le problème. J'ai essayé plusieurs format de date, changer le nom du champ date pour éviter tout conflit... Dans le fichier csv j'ai même remplacé les 3 premières lignes par la 4ème et même avec ça, seul la date de la dernière ligne fonctionne...
Je débute en sql et je vais devoir utiliser cette fonction à plusieurs reprise par la suite donc si quelqu'un voit d'où vient le problème ça m'aiderai énormément!
Merci et bonne journée.