ablog

不器用で落着きのない技術者のメモ

LOAD DATA ステートメントで "Row X was truncated; it contained more data than there were input columns" が発生する

事象

LOAD DATA ステートメントCSV ファイルをロードすると "Row X was truncated; it contained more data than there were input columns" というワーニングが発生し、全ての行がロードされていない。

mysql> LOAD DATA LOCAL INFILE 'test.csv' INTO TEST FIELDS TERMINATED BY ',' ENCLOSED BY '"';
Query OK, 9 rows affected, 9 warnings (0.04 sec)
Records: 9  Deleted: 0  Skipped: 0  Warnings: 9

Warning (Code 1262): Row 1 was truncated; it contained more data than there were input columns
Warning (Code 1262): Row 2 was truncated; it contained more data than there were input columns
Warning (Code 1262): Row 3 was truncated; it contained more data than there were input columns

原因

  • CSV ファイルの改行コードが CRLF になっていたため。

解決策

  • CSV ファイルの改行コードを LF に変換してロードした。

環境

% mysql -V
mysql  Ver 14.14 Distrib 5.7.18, for osx10.12 (x86_64) using  EditLine wrapper