这是我的查询(在 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
)
触发器
:
如您所见,我的查询是一个 UPDATE
语句,但问题是,它永远不会发生。根据一些测试,该问题与EXISTS
有关。当我删除它时,就会发生UPDATE
。
无论如何,为什么EXISTS
始终为真?即使 views_profile
表中没有任何行?
最佳答案
您正在使用 TRIGGER
和 AFTER INSERT
,因此新行可在 UPDATE
上使用(并且可以在 >存在
)。您可以将时间更改为BEFORE
。
关于mysql - 为什么 EXISTS() 总是返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48900584/