せかいろぐ

ほぼ自分用備忘録

テーブルをCSVファイルで出力・入力(MySQL)

テーブルをCSVファイルに出力したり、CSVファイルから入力したりするには

CSVファイルに出力するには

SELECT INTO OUTFILE構文を使用します。

SELECT * FROM `TestTable`
INTO OUTFILE '/tmp/TestTable.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'

ただし、FILE権限が有効化されていないと、

Access denied for user 'TestUser'@'localhost' (using password: YES)

となるので、予め有効化しておきます。

GRANT FILE ON *.* TO 'TestUser'@'localhost'



CSVファイルから入力するには

LOAD DATA INFILE構文を使用します。

LOAD DATA INFILE '/tmp/TestTable.csv'
INTO TABLE `TestTable`
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'

出力した時と同じFIELDSLINES節がないと正しく入力できないので注意が必要です。