无法更新存储函数/触发器中的表,因为它已被调用此存储函数/触发器的语句使用

时间:2012-11-18 07:38:20

标签: mysql triggers insert

在MySQL中,我刚刚使用此触发器设置一个表的最后修改日期,如果与它相关的新记录插入到链接表中

create trigger trg_badge after insert on tbl_badge for each row 
UPDATE tbl_sub_model SET last_modified_date = NOW() 
WHERE sub_model_sk = NEW.sub_model_sk;

当我运行填充tbl_sub_model然后tbl_badge的脚本时,我得到:

Error Code: 1442. Can't update table 'tbl_sub_model' in stored 
function/trigger because it is already used by statement which 
invoked this stored function/trigger.

当我使用单独的脚本插入时,事情工作正常但是如果两个语句都在同一个脚本中则不行。有没有办法用相同的.sql脚本插入两个表?

1 个答案:

答案 0 :(得分:0)

啊......解决了,我的插入语句将tbl_sub_model加入到其他几个中,以便让sub_model_sk与正确的新记录相关。

现在我知道我只会在脚本末尾创建触发器,没什么大不了的。