MySQL: 改行を含むデータのload data local infile

改行を含むデータをload data local infileしたかったので、
ちゃんとマニュアルを読んでみました。

サンプルテーブルは以下。
mysql> show create table test2 \G
*************************** 1. row ***************************
       Table: test2
Create Table: CREATE TABLE `test2` (
  `id` int(11) NOT NULL,
  `desc` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

このテーブルに、以下のようなテキストファイルを作成。
/tmp% less test2.dat 
1       あああ
いいい
ううう^A2       えええ
おおお

データ間はタブで区切って、
^A = Ctrl-A = 0x01 で行を区切ったデータを取り込んでみる。
mysql> load data local infile '/tmp/test2.dat' into table test2 lines terminated by 0x01;
Query OK, 2 rows affected (0.06 sec)
Records: 2  Deleted: 0  Skipped: 0  Warnings: 0

mysql> select * from test2 \G
*************************** 1. row ***************************
  id: 1
desc: あああ
いいい
ううう
*************************** 2. row ***************************
  id: 2
desc: えええ
おおお

2 rows in set (0.00 sec)

無事取り込み完了。
0x01はシングルクォートやダブルクォートでくくらないのが(強いて言えば)ポイントか。

以上、自分用メモ。



人気の投稿