人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

mysql の unique 制約 について質問です。
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 でなく、新規にレコードを追加したいのです。

●質問者: cyndy
●カテゴリ:ウェブ制作
✍キーワード:ALTER DELETE hoge INDEX Key
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● chuken_kenkou
●60ポイント

MySQLの質問をする場合は、バージョンを明記してください。

すぐに思いつくだけでも、上記のような機能拡張と一部の仕様変更があります。


実際の表定義、インデクス定義と、格納データの例を提示できませんか?

また、使用しているテーブル型(MyISAM、InnoDBなど)は、何でしょうか?

MyISAMを使っていて、何らかの要因で破損している場合などでは、重複エラーとして顕在化する場合もあるようです。


http://q.hatena.ne.jp/だみー

◎質問者からの返答

回答ありがとうございます。

Mysql 5.0.45 です。MyISAMを使っていると思います。

いま、一度DROPしたUNIQUE制約を再度追加してみると、問題なくINSERTできました。

一体なんだったのかよくわかりませんが。。。

とりあえずこれでよしとしておきます。次回からバージョンも明記するので、また困ったら助けてください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ