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