这是我的查询(在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
表中没有任何行?
答案 0 :(得分:1)
您正在TRIGGER
使用AFTER INSERT
,因此新行可在UPDATE
上找到(可在EXISTS
上找到)。您可以将时间更改为BEFORE
。