こんにちは。
職人見習いの櫛田です。
MySQLのバグのようでLOAD DATA INFILE文でcsvを追加でインポートした時にAUTO_INCREMENTが連番にならず、インポートしたレコード数にもよりますが、数百番飛んだ値になっていました。
そこで、連番になるようにAUTO_INCREMENTの値を指定して対応しました。
(※MySQLを再起動すれば、連番になるようです。)
○CSVのインポート
20111130.csvというファイルをインポートします。
LOAD DATA LOCAL INFILE "/home/hoge/20111130.csv" INTO TABLE dbname.tablename FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY 'rn' IGNORE 1 LINES (@a,@b,@c) SET name=@a,age=@b,job=@c;
○AUTO_INCREMENTの確認
下記でAUTO_INCREMENTの値を確認すると連番になっていないことが確認できます。
SHOW TABLE STATUS FROM dbname;
○AUTO_INCREMENTの指定
下記でAUTO_INCREMENTが連番になるように最新のレコードに割り当てられたAUTO_INCREMENTの値に
1足したものを指定します。
ALTER TABLE plan AUTO_INCREMENT = 10;
そして、再度CSVをインポートすると連番でデータが登録されます。
※この記事は、なかの人(KUSSY8077)が書いています。