У меня есть простой запрос 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
Я думал об использовании триггера, который будет автоматически выполнять инструкцию UPDATE при вызове INSERT, но только если первичный ключ является дубликатом. Есть ли какие-либо проблемы с этим? Мне нужна помощь с триггерами, так как я испытываю трудности с их пониманием и выполнением своих действий.