web-dev-qa-db-fra.com

Insertion de tous les fichiers csv dans une table dans MySQL

Je cherche un moyen d'insérer tous mes fichiers csv dans MySQL sans avoir à écrire plusieurs LOAD DATA INFILE déclarations.

J'ai de nombreux fichiers csv que je dois insérer et les fichiers eux-mêmes sont très volumineux.

J'ai essayé *.csv, mais cela ne fonctionne pas.

6
dunce1

Voir ces réponses précédentes:

https://stackoverflow.com/questions/8538995/how-to-import-multiple-csv-files-into-a-mysql-database

https://stackoverflow.com/questions/6552042/mysql-loading-multiple-files-into-a-table

Essentiellement, non. Mais il est facile de l'écrire pour obtenir un résultat similaire (par exemple, une commande pour importer plusieurs fichiers à l'aide d'une boucle).

2
Phil Sumner

Réponse CW initialement laissée dans la question par son auteur

J'ai écrit un script qui a fonctionné:

for f in /var/lib/mysql/[insert name of database here]/*.csv
do
    mysql -e "LOAD DATA INFILE '"$f"' INTO TABLE [nameoftable] 
      FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES" 
      -u [username] --password= [password] [name of database]
echo "Done: '"$f"' at $(date)"
done
1
Paul White 9