• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysqlのINSERT文の重複回避の条件文)

mysqlのINSERT文の重複回避の条件文

このQ&Aのポイント
  • mysqlのINSERT文を実行する際に、重複するデータを回避する仕組みを作りたいです。ただし、特定の条件の場合は重複を許容したいです。
  • 具体的には、theaterとtitleの組み合わせで重複を弾きたいが、別の組み合わせの場合は重複ができるようにしたいです。
  • UNIQUEキーを使用せずに、theaterとtitleの重複を回避する条件文を作りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

create table movie(id int not null primary key,theater varchar(100),title varchar(100)); こういう構造であれば、こうしておくといけます。 alter table movie add unique (theater,title); 試しにこうしてみてください insert ignore into movie values(1,'渋谷東急','「タイタニック」'),(2,'新宿ミラノ座','「Always3丁目の夕日」'),(3,'新宿ミラノ座','「Always3丁目の夕日」'),(4,'新宿ミラノ座','「タイタニック」'); 1,2はOKで3は弾かれて、4はOKです。

その他の回答 (3)

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.3

主キーをidの単一キーから id + theater + title の3項目の複合キーすれば希望の処理となります。 ちなみにtheater と title は別テーブルにした方が良いと思います。 たとえば T_theater theater_id theater_name T_title title_id title_name

  • akito0417
  • ベストアンサー率20% (55/266)
回答No.2

IDがカラムとしてないなら、IDのカラムを増やすか、theaterとtitleの2つを主キーにするか。 後者でやるなら、theaterかtitleのどちらかが違って居れば 一意性にはならないですよ。

  • akito0417
  • ベストアンサー率20% (55/266)
回答No.1

どういうプログラムか知らないけど・・・。 IDもカラムにあるわけでしょ? IDを条件にカウント取って、1件以上だったら登録しなきゃいいのでは?

関連するQ&A