あなたの習慣について教えてください!!

mysqlへcsvファイルをインポート(アップロード)するところで躓いています。

テーブルは
mysql>create table workf01(
f01 varchar(10) NOT NULL DEFAULT,
f02 varchar(10) DEFAULT NULL,
f03 varchar(30) DEFAULT NULL,
PRIMARY KEY (f01)
) ENGINE=InnoDB DEFAULT CHARASET=cp932;

csvデータはWindowsServer上のWebアプリからダウンロードされたもので、下記のような形で入っています。
"aaa","123"
"bbb","1234","9999"
"ccc","12345","99"

下記のコマンドでアップロードしました。
mysql>load data infile 'd:/workf01.csv' into table workf01
-> fields terminated by ',' enclosed by '"' lines terminated by '\r\n'
-> ignore 1 lines;
結果は、下記のエラーになりました。
#1261:Row 1 doesn't contain data for all columns
最終カラムには値が落ちないレコードがあるせいかと思い、accessで一旦取り込んでからエクスポートしなおしたところ、下記のように、1レコード目の最終カラムの区切りカンマが入りました。
"aaa","123",
"bbb","1234","9999"
"ccc","12345","99"

アップロードを再実行したところ、前回のエラーは出なくなったものの、
#1406:Data too long for column 'f01' at row 1
というエラーが出て困っています。f01に入っている値の長さは10バイトに収まっています。

1件も書き込まれないので、原因が良く判らず困っています。
何かアドバイスを頂ければ幸いです。

実行環境としては、
WindowsServer2012上で、mysql 5.4.43
データベースの文字コードは
mysql>show variables 'charset%';
character_set_database=cp932;
となっています。

A 回答 (1件)

"aaa","123",""


など空の部分は空データを指定してあげてみてはどうでしょう?
    • good
    • 0
この回答へのお礼

有難うございました。
先頭レコードに空データを埋めてみましたが、同じエラーが出ました。

お礼日時:2017/03/24 19:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報