• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同じデータをinsertしないようにするには?)

同じデータをinsertしないようにするには?

このQ&Aのポイント
  • データの重複を防ぐ方法について知りたいです。カラムに重複する要素が含まれる場合、INSERT文で条件制御をすることは可能でしょうか?
  • INSERT IGNOREは重複を防ぐための方法ではありません。重複する要素を含むカラムに対してINSERT文上で条件制御を行うことができる方法を教えてください。
  • データベースのカラムに重複する要素が含まれる場合、INSERT文で条件制御して重複を防ぐ方法について知りたいです。

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

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

重複するデータがすでにあるのに重複しないようにするというのは 状況がよくわかりません。 そもそも重複したいのでしょうかしたくないのでしょうか? もう少し仕様をきっちりしたほうが良いと思います。 もし質問者さんの命題が正しく提起されているのであれば INSERT IGNOREやREPLACEも使えなさそうなので SQL側で処理するのは確かに厳しいと思います。

yuzuru0024
質問者

お礼

たしかに仕様に仕様を付け足し 状況は大変複雑になっているので特殊な状況かもしれません。 具体的に状況をいいますと、 現在旧仕様と、新仕様があり、 第一回目にインサートする時は、新仕様テーブル、旧仕様テーブル 両方にインサートするという状況となっています。 が、これがくせものでインサートするデータには 新仕様テーブルと旧仕様テーブルに対応しているもの、旧仕様テーブルにしか対応していないものの 二種類あるのです。 新仕様対応データは、新仕様、旧仕様両方に対応してますから、 その後、データの変更処理を行う時、 新旧、両方のテーブルともUPDATEでできます。 が、旧仕様データは、旧仕様テーブルのみにしか対応していないため、 旧仕様は、UPDATEでいけるんですが、新仕様はINSERTを 使わなければならなくなるんです。 じゃあ、 「なんで旧データも一番最初INSERTする時に、新テーブルにINSARTせえへんねん」 と思われるかもしれませんが、その通りです。 すいません。仕様がきっちりしてなかったですね・・・。 回答有難うございました。