Вот мой запрос (используется в TRIGGER
):
update user_details
set views_profile = views_profile + 1
where user_id = new.user_id and not exists (
SELECT 1
FROM views_profile vp
WHERE vp.user_id = new.user_id and vp.viewer_id = new.viewer_id
)
TRIGGER
:
Как вы можете видеть, мой запрос является оператором UPDATE
и проблема в том, что это никогда не происходит. Согласно некоторым испытаниям, проблема связана с EXISTS
. Когда я удаляю его, произойдет UPDATE
.
Во всяком случае, почему EXISTS
все время? Даже если в таблице views_profile
нет какой-либо строки?
Вы используете TRIGGER
с AFTER INSERT
чтобы новая строка была доступна в UPDATE
(и может быть найдена на EXISTS
). Вы можете изменить время до BEFORE
.