MYSQLのSQL INSERTについておしえてください。


TABLEに5つのフィールドがあってその中の2つにこれからINSERTしようとしているものと同様の値が入っているときにDB側でINSERTを行わない方法はありますでしょうか。

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2008/03/28 23:02:08
  • 終了:2008/04/04 23:05:02

回答(2件)

id:ManalTencho No.1

ManalTencho回答回数129ベストアンサー獲得回数92008/03/28 23:34:24

ポイント35pt

テーブル t の c1, c2 列に値 v1, v2 を insert するケースを考えてみます。

insert into t a (a.c1, a.c2) select v1, v2 from t b where v1 <> b.c1 and v2 <> b.c2;

のようなかんじではいかがでしょうか。

id:litt No.2

litt回答回数9ベストアンサー獲得回数12008/03/29 00:07:57

ポイント35pt

その列にユニークインデックスをつければいいんじゃないでしょうか?

2つの列をセットで重複しないようにするなら

ALTER TABLE [テーブル名] ADD UNIQUE [インデックス名] (col1, col2);

それぞれの列で重複しないようにするなら

ALTER TABLE [テーブル名] ADD UNIQUE [インデックス名1] (col1);

ALTER TABLE [テーブル名] ADD UNIQUE [インデックス名2] (col2);

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません