web-dev-qa-db-fra.com

Importer CSV dans MySQL

J'ai créé une base de données et une table. J'ai également créé tous les champs dont j'aurai besoin. J'ai créé 46 champs dont un qui est mon ID pour la ligne. Le CSV ne contient pas le champ ID, ni les en-têtes des colonnes. Je suis nouveau dans tout cela, mais j'ai essayé de comprendre cela. Je ne suis pas ici paresseux pour demander la réponse, mais pour chercher des directions.

J'essaie de comprendre comment importer le CSV, mais faites-le commencer à importer des données à partir du 2ème champ, car j'espère que l'auto_increment remplira le champ ID, qui est le premier champ que j'ai créé.

J'ai essayé ces instructions sans succès. Quelqu'un peut-il offrir un aperçu?

  1. Les noms des colonnes de votre fichier CSV doivent correspondre à ceux de votre table
  2. Accédez au fichier .csv requis
  3. Sélectionnez CSV à l'aide des options LOAD DATA
  4. Cochez la case "ON" pour Remplacer les données de la table par un fichier
  5. Dans champs terminés par, saisissez ,
  6. Dans champs encadrés par, "
  7. Dans Champs échappés par box, \
  8. Dans lignes terminées par, auto
  9. Dans la zone Noms des colonnes, saisissez le nom de la colonne séparé par , comme column1,column2,column3
  10. Cochez la case pour tilisez le mot-clé LOCAL.

Éditer:

Le fichier CSV est de 32,4 ko

La première ligne de mon CSV est:

Test Advertiser,23906032166,119938,287898,,585639051,287898 - Engager - 300x250,88793551,Running,295046551,301624551,2/1/2010,8/2/2010,Active,,Guaranteed,Publisher test,Maintainer test,example-site.com,,All,All,,Interest: Dental; custom geo zones: City,300x250,-,CPM,$37.49 ,"4,415","3,246",3,0,$165.52 ,$121.69 ,"2,895",805,0,0,$30.18 ,$37.49 ,0,$0.00 ,IMPRESSIONBASED,NA,USD
20
404error

Vous pouvez avoir des valeurs définies MySQL pour certaines colonnes lors de l'importation. Si votre champ id est défini sur incrémentation automatique, vous pouvez le définir sur null lors de l'importation et MySQL lui attribuera alors des valeurs d'incrémentation. Essayez de mettre quelque chose comme ça dans l'onglet SQL de phpMyAdmin:

LOAD DATA INFILE 'path/to/file.csv' INTO TABLE your_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' SET id=null;
43
webbiedave

Veuillez regarder cette page et voir si elle a ce que vous cherchez. Devrait être tout ce dont vous avez besoin puisque vous avez affaire à une seule table. MYSQL LOAD DATA INFILE

Ainsi, par exemple, vous pourriez faire quelque chose comme ceci:

LOAD DATA INFILE 'filepath' INTO TABLE 'tablename' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (column2, column3, column4);

Cela devrait vous donner une idée. Il y a bien sûr plus d'options qui peuvent être ajoutées comme indiqué dans le lien ci-dessus.

17
Kavet Kerek

assurez-vous d'utiliser LOAD DATA LOCAL INFILE si le fichier d'importation est local. :)

5
paiego