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

Ответы на вопрос(0)

Ваш ответ на вопрос