テキストファイルからデータを流し込む

Oracleでいうところの impと同等の MySQLimportというコマンドがありますが、MySQLの中から「LOAD DATA INFILE」とするのと同じなので、こちらの方法でデータをインポートしてみます。

簡単なやり方

mysql> LOAD DATA INFILE 'text.txt' INTO TABLE items;
Query OK, 4 rows affected (0.05 sec)
Records: 4  Deleted: 0  Skipped: 0  Warnings: 0

これでOKです。こうやってうまくいく前提としてテキストファイルは次のことに気をつけます。

  • デリミタはタブ
  • 文字列は'"'などで囲まない
  • 項目内の制御コードは\でエスケープ
  • 行末は改行

注意

忘れがちですが、NULL値を NULLと表記すると文字列の"NULL"になってしまいます。NULL値は \N で指定すること。

参考

  1. 「LOAD DATA INFILE」についてはこちら(→ファイルハンドルと出力 - SMART 開発者のためのウェブマガジン)が詳しいです。
  2. こちら(→MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.2.6 LOAD DATA INFILE 構文)が本家リファレンスです。