データをテーブルにロードしようとしています(明らかに?)。私のテーブルは次のようになります。
CREATE TABLE IF NOT EXISTS `condensed` (
`id` bigint(20) NOT NULL,
`src` enum('C_X','C_AH','C_AO','C_B','H_X','H_AH','H_AO','H_B') NOT NULL,
`hash` int(11) default NULL,
`ihash` int(11) default NULL,
`last_updated` datetime default NULL,
PRIMARY KEY (`id`,`src`),
UNIQUE KEY `covering` (`id`,`src`,`hash`)
) ENGINE=MyISAM DEFAULT CHARSET=ascii;
次のようなデータファイルがあります。
320115816,'C_X',692983698,854142703,20120216220954
320124536,'C_X',588472049,1059436251,20100527232845
320120196,'C_X',452117509,855369958,20101118105505
...
しかし、私がそれを使用してロードするとき
LOAD DATA INFILE '/path/to/data.csv'
IGNORE
INTO TABLE `condensed`
(id, src, hash, ihash, last_updated);
最初の2つの列のみをロードします(hash、ihash、およびlast_updatedはnullです)。
320115816,'C_X',NULL,NULL,NULL
320124536,'C_X',NULL,NULL,NULL
320120196,'C_X',NULL,NULL,NULL
...
多くの警告が表示されます(おそらく、mysqlが入力セットから3つの列を破棄し、デフォルトを割り当てているためです)
Query OK, 20 rows affected, 100 warnings (0.00 sec)
Records: 20 Deleted: 0 Skipped: 0 Warnings: 100
(20だけでなく、数ミリオンのレコードをロードするつもりです)
mysqlimportを使用しても同じ問題が発生します。
LOAD DATAステートメントから明示的なフィールドリスト(データベース内のファイルと同じフィールドと順序)を省略すると、同じ結果になりました。
MySQLのバージョンは5.0.22であり、入力ファイルに印刷できない文字はありません。
ヘルプ!