MySQLのloadでカラムにNULLをセットする2009/07/16 10:22:53

▼tsvファイルをもとにデータをMySQLテーブルにloadするメモ

・loadコマンドを実行すればいいんだけど、
きっと忘れそうなのでシェル起動で実行するように、
下記を作成。

-*-*-*-*-*-*-*-*-*-
(1) ほにゃらら.tsv
(2) ほにゃらら_load.sh
(3) ほにゃらら_load.sql
-*-*-*-*-*-*-*-*-*-

まずは、(1)のtsvファイルをニヤニヤしながらつくってみる。
NULLとなる項目は 「NULL」文字列としてみた。

次に、(2)の起動シェルをこんな感じに記述。
---------------------------------------------------
mysql --host=接続するDBのホスト --user=MySQLのログインユーザ --password=MySQLのログインパスワード --database=接続するDB -s < (3)のほにゃらら_load.sqlのフルパス > load時のログのフルパス
---------------------------------------------------

最後に、(3)のSQLファイルを記述。
---------------------------------------------------
load data local infile '(1)のtsvファイルのフルパス' in
to table loadしたいテーブル fields terminated by '\t' lines terminated by '\r\n';
---------------------------------------------------


いよいよ実行!

ほにゃらら_load.sh


・・・

なんかNULLじゃない。0とか入ってるし。


調査します。

調査しました。
(1)のtsvファイルのNULLとなる項目は 「\N」としてみた。

再び実行!

ほにゃらら_load.sh

ばっちりだぜ☆