- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysqlのINSERT文の重複回避の条件文)
mysqlのINSERT文の重複回避の条件文
このQ&Aのポイント
- mysqlのINSERT文を実行する際に、重複するデータを回避する仕組みを作りたいです。ただし、特定の条件の場合は重複を許容したいです。
- 具体的には、theaterとtitleの組み合わせで重複を弾きたいが、別の組み合わせの場合は重複ができるようにしたいです。
- UNIQUEキーを使用せずに、theaterとtitleの重複を回避する条件文を作りたいです。
- みんなの回答 (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件以上だったら登録しなきゃいいのでは?