ID-Blogger

phpMyAdminで「#1062 - Duplicate entry '127' for key 1」エラー

phpMyAdminからCSVデータをインポートさせてたんですが、「#1062 - Duplicate entry '127' for key 1」というエラーを吐いて128行目以降のデータを読み込まない異常事態発生!!

試しに127行目のデータを差し替えたり手作業で追加したりしても状況は変わらず...
ここは冷静になってググろう。

mysql5 #1062 - Duplicate entry '127′ for key 1 ではまる « エリベリンデラボ

mysql5 の insert でつまづきました。
key1はidというフィールドで primary key なのでユニークではあるが ちゃんとauto_increment してあるので
idを指定せずにinsertすれば問題ないはず・・・なのにタイトルのエラーではまりました。

テーブルの不具合かとmyismchkも試しますが,エラーは見つかりませんでした。
select * from table_name where id = 127;
としてみるとエラーは出ずに正常にselectできます。

途方に暮れてtable structureを眺めていると・・・。
原因は key1 の field type が tinyint(20)になっていたからでした^^;灯台元過ぎだぜ。
int にしたらちゃんとINSERTできてauto_incrementしてくれました。

そうだった。フィールド型「tinyint」だと最小-128から最大128までしか格納できないんだった...
ほとんどの場合ミスするのは自分の方です。

単純な話なんですがハマるとなかなか抜け出せないのでご注意をw