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.
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).
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