【MySQL】csvで入出力
たまに利用するけど、すぐに忘れてしまうので、忘却防止に。
操作テーブル・・・user_tbl
操作ファイル・・・/tmp/user_list.csv
■csv出力
select * from user_tbl INTO OUTFILE '/tmp/user_list.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"'
上記のSQLを発行すれば、サーバ内の/tmpにuser_list.csvが出力される。
INTO OUTFILEは出力先を指定する。
FIELDS TERMINATED BYはカンマ区切りにする。
OPTIONALLY ENCLOSED BYはダブルクオーテションで値を括ってくれる。
出力する際、出力先に同名ファイルが存在するとエラーとなります。
恐らく/tmpは誰でも書き込めるけど、書き込み権限がないとエラーが発生する(当たり前)
■csv入力
LOAD DATA LOCAL INFILE "/tmp/user_list.csv" INTO TABLE user_tbl FIELDS TERMINATED BY ',' ENCLOSED BY '"'
基本的には出力と逆だけど、入力ファイル内の記述がダブルクオーテションで値を括ってなければ、ENCLOSED BYいらないと思った。
ディスカッション
コメント一覧
まだ、コメントがありません