我有一个简单的 INSERT 查询,当主键重复时,我需要使用 UPDATE 代替。在 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 语句,但前提是主键是重复的。这样做有什么问题吗?我需要一些有关触发器的帮助,因为我在尝试理解它们并自己做时遇到了一些困难。