我有一个连接表,它与2个表(A和C)的n:m关系相连接。连接表(B)也保存一些信息。
A ----- B ----- C
在表A中,我有一个when_modified列,如果有任何变化,我总是希望保持当前状态。这应包括对表B的修改。
因此,我在表B上有一个更新前触发器,查询如下
UPDATE A SET when_modified = NOW() WHERE id = NEW.id;
问题是,如果我现在执行一个更新查询(在B上有一个join),我会得到以下错误
无法更新存储函数/触发器中的表“A”,因为它已被调用此存储函数/触发器的语句使用。
Update B vv JOIN A v on vv.id = v.id SET vv.block = 1 WHERE v.status = 'finished'
1条答案
按热度按时间ctehm74n1#
您需要重写UPDATE语句。
你不能扣扳机,否则会发生的。无尽的循环
但是一个简单的改变也会起到同样的效果
fiddle