web-dev-qa-db-ja.com

MySQLのテーブルにすべてのcsvファイルを挿入する

いくつかのLOAD DATA INFILEステートメントを記述せずに、すべてのcsvファイルをMySQLに挿入する方法を探しています。

挿入する必要があるcsvファイルがたくさんあり、ファイル自体が非常に大きい。

*.csvを試しましたが、うまくいきません。

6
dunce1

これらの以前の回答を参照してください:

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

基本的にはありません。しかし、これをスクリプト化して同様の結果を得るのは簡単です(たとえば、ループを使用して複数のファイルをインポートする1​​つのコマンド)。

2
Phil Sumner

作者が最初に質問に残したCW回答

私は機能するスクリプトを書きました:

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