私は、主キーが重複である場合に、代わりにUPDATEを使用する必要がある簡単なINSERTクエリを持っています。 MySQLでは、これは簡単ですが、OracleではMERGEを使用する必要があるようです。OracleのINSERT重複プライマリ・キーのUPDATE?
私が見つけたMERGEのすべての例には、ソースとターゲットのテーブルがあります。私の場合、ソースとターゲットは同じテーブルです。私は自分のクエリを作成するための例を理解できませんでした。
マージは唯一の方法ですか、それとももっと良い解決策がありますか?
INSERT INTO movie_ratings
VALUES (1, 3, 5)
それは基本的に、このだとプライマリキーは、最初の2つの値であるので、更新は次のようになります:
UPDATE movie_ratings
SET rating = 8
WHERE mid = 1 AND aid = 3
私は自動的にUPDATEステートメントを実行しますトリガを使用するのではと思いました主キーが重複している場合にのみ、INSERTが呼び出されました。このようにして問題がありますか?私はトリガーのいくつかの助けが必要ですが、私はそれらを理解しようとするといくつかの難しさを持っていると自分自身をやっている。これを行うの
このような例では、INSERTの列名のリスト(オプション)を使用して、十分なテーブル構造を得ることができます。多分、MySQLで何が行われたのかを示したら、人々はあなたが何をしているのかを知るかもしれません。それは私の好奇心/怠惰なのかもしれません。 –
テーブルの構造はimplicで、mid(int)、aid(int)、rating(int)です。 –