emailカラムにunique をつけました。'hoge@hoge.com'が入っている行を削除しました。
そのあとで、INSERT文で、emailカラムに同じ'hoge@hoge.com'を挿入しようとすると、duplicate errorになります。 なぜinsert できないのでしょうか。
primary key は別のカラムです。
alter table drop index でunique 制約を削除すると、同じinsert文を実行するとエラーになりません。
DELETEしていてテーブルにはないのに、まだ重複エラーになるのはなぜでしょうか。そうゆうものでしょうか。またこれを回避するにはどうすればいいのでしょうか。
on duplicate key update でなく、新規にレコードを追加したいのです。
MySQLの質問をする場合は、バージョンを明記してください。
すぐに思いつくだけでも、上記のような機能拡張と一部の仕様変更があります。
実際の表定義、インデクス定義と、格納データの例を提示できませんか?
また、使用しているテーブル型(MyISAM、InnoDBなど)は、何でしょうか?
MyISAMを使っていて、何らかの要因で破損している場合などでは、重複エラーとして顕在化する場合もあるようです。
回答ありがとうございます。
Mysql 5.0.45 です。MyISAMを使っていると思います。
いま、一度DROPしたUNIQUE制約を再度追加してみると、問題なくINSERTできました。
一体なんだったのかよくわかりませんが。。。
とりあえずこれでよしとしておきます。次回からバージョンも明記するので、また困ったら助けてください。