こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

'id'を無視して、外部ファイルを読み込むには?

MySQLでデータベースを作成しています。テーブルを以下のように作成しました。

create table table_name (
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    aaa text,
    bbb text,
    ccc text,
    PRIMARY KEY (id)
);

そして、以下のようなファイル(/root/file)を読み込みます。(尚、ファイルはLinux上で作成しました。)

[/root/file]
a1,b1,c1
a2,b2,c2
a3,b3,c3

そして、データベース上で以下のようなコマンドを実行しました。

load data local infile '/root/file' into table table_name fields terminated by ',' lines terminated by '\n';

すると、以下のような結果が得られます。

+----+-----+-----+------+
| id | aaa | bbb | ccc |
+----+-----+-----+------+
| a1 | b1 | c1 | NULL |
| a2 | b2 | c2 | NULL |
| a3 | b3 | c3 | NULL |
+----+-----+-----+------+

以下のようにテーブルを作り直すことなく、

create table table_name (
    aaa text,
    bbb text,
    ccc text,
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (id)
);

また、以下のようにファイルを書くことなく、

[/root/file]
,a1,b1,c1
,a2,b2,c2
,a3,b3,c3

以下のような結果を出すにはどのようにすればよいのでしょうか。(つまり、自動的に作成される'id'を無視するにはどうすればよいのでしょうか。)

+----+-----+-----+-----+
| id | aaa | bbb | ccc |
+----+-----+-----+-----+
| 1 | a1 | b1 | c1 |
| 2 | a2 | b2 | c2 |
| 3 | a3 | b3 | c3 |
+----+-----+-----+-----+

よろしくお願い致します。

投稿日時 - 2009-08-03 14:35:57

QNo.5178407

困ってます

質問者が選んだベストアンサー

カラム指定できるはずですが。以下の指定順。
LOAD DATA INFILE 'file.txt' INTO TABLE `t1`
FIELDS TERMINATED BY ','
[LINES TERMINATED BY '\n\r' ]
(column1, column2);
マニュアル参照
http://dev.mysql.com/doc/refman/5.1/ja/load-data.html

参考URL:http://dev.mysql.com/doc/refman/5.1/ja/load-data.html

投稿日時 - 2009-08-04 21:45:51

お礼

ご回答ありがとうございました。

まさに探し求めていた答えです。
とてもスッキリした気持ちです。

お礼が遅くなり失礼致しました。

投稿日時 - 2009-08-07 14:41:05

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

CSVの取り込みをあきらめ、SQL形式でバルクインサートしては?

投稿日時 - 2009-08-03 16:27:23

お礼

ご回答ありがとうございました。

CSVの取り込みは諦め切れませんでした…

投稿日時 - 2009-08-07 14:39:24

あなたにオススメの質問