134 votes

Importer des données dans MySQL à partir d'un fichier CSV en utilisant LOAD DATA INFILE

J'importe des données de 20 000 lignes d'un fichier CSV vers MySQL.

Les colonnes du fichier CSV sont dans un ordre différent de celui des colonnes des tables MySQL. Comment puis-je attribuer automatiquement des colonnes correspondant aux colonnes des tables MySQL ?

Quand j'exécute

LOAD DATA INFILE 'abc.csv' INTO TABLE abc

cette requête ajoute toutes les données à la première colonne.

Quelle est la syntaxe automatique pour importer des données vers MySQL ?

1voto

Hozayfa Points 11

Vous pouvez essayer d'insérer comme ceci :

LOAD DATA INFILE '/tmp/filename.csv' replace INTO TABLE [table name] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1,field2,field3);

0voto

Carlos Garcia Points 319

Je devenais

Code d'erreur : 1290. Le serveur MySQL s'exécute avec l'option --secure-file-priv et ne peut donc pas exécuter cette instruction.

Cela a fonctionné pour moi sur Windows 8.1 64 bits en utilisant WAMP Server 3.0.6 64 bit :

  • J'ai modifié mon fichier .ini de C:\wamp64\bin\mysql\mysql5.7.14 .

  • Supprimer l'entrée secure_file_priv c : \wamp64\tmp\ (ou le répertoire que vous avez ici).

  • J'ai tout arrêté, avec sortie du wamp etc. et j'ai tout redémarré ; puis j'ai placé mon fichier CVS sur C:\wamp64\bin\mysql\mysql5.7.14\data\u242349266_recur (le dernier répertoire étant le nom de ma base de données)

  • J'ai exécuté

     LOAD DATA INFILE 'myfile.csv'
    
     INTO TABLE alumnos
    
     FIELDS TERMINATED BY ','
    
     ENCLOSED BY '"'
    
     LINES TERMINATED BY '\r\n'
    
     IGNORE 1 LINES
  • ... et voilà ! !!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X