主キーが重複している場合、代わりに UPDATE を使用する必要がある単純な INSERT クエリがあります。MySQL ではこれは簡単に思えますが、Oracle では MERGE を使用する必要があるようです。
私が見つけた MERGE のすべての例には、ある種の「ソース」テーブルと「ターゲット」テーブルがありました。私の場合、ソースとターゲットは同じテーブルです。独自のクエリを作成するための例を理解できませんでした。
MERGE が唯一の方法ですか、それとももっと良い解決策がありますか?
INSERT INTO movie_ratings
VALUES (1, 3, 5)
基本的にはこれで、主キーは最初の 2 つの値であるため、更新は次のようになります。
UPDATE movie_ratings
SET rating = 8
WHERE mid = 1 AND aid = 3
主キーが重複している場合にのみ、INSERT が呼び出されたときに UPDATE ステートメントを自動的に実行するトリガーを使用することを考えました。この方法で何か問題はありますか?ただし、トリガーを理解しようとして自分で行うのに苦労しているため、トリガーの助けが必要です。