キュアセブン技術ブログ

考えたこと,学んだことを書きます

mysqlでcsvを新規テーブルにインポートする

mysqlのversionは5.7.19 14.14(<-mysql コマンドのバージョン)です.

mysqlに入る

$ mysql --local_infile=1 -u root
--local_infile=1はエラー対策です.

$mysql -u root

で入って

mysql> LOAD DATA LOCAL INFILE ‘filename.csv’ INTO TABLE table_name FIELDS TERMINATED BY ‘,’ ENCLOSED BY ’“;

をした時に

ERROR 1148(4200): The used command is not allowed with this MYSQL version

と出てしまう!

参考:

忘れがちな記憶へ ERROR 1148 (42000): The used command is not allowed with this MySQL version問題

使うDBを作成する

mysql> CREATE DATABASE database_name;

csvを入れるためのテーブルを作成する

この時カラムなども指定する. 

mysql>CREATE TABLE database_name.table_name( col_name1 data_type1, col_name2 data_type2, ... );

使うデータベースを指定する

mysql> USE database_name;

これをしないと

ERRER 1046 (3D000):No database selected

って出た.

 csvをインポートする

mysql> LOAD DATA LOCAL INFILE ‘filename.csv’ INTO TABLE table_name FIELDS TERMINATED BY ‘,’ ENCLOSED BY ’“;

できたらこのような表示が出て終了!

Query OK, 2279299 rows affected, 65535 warnings (9 min 29.76 sec)
Records: 2279299 Deleted: 0 Skipped: 0 Warnings: 4558602 

めっちゃインポートした!200万レコード..

 

【おまけ】試しに最初の10列を表示してみる

mysql> SELECT col_name1,col_name2 FROM table_name ORDER BY col_nameN LIMIT 10;

で表示できる.