gpt4 book ai didi

mysql - 后触发器不允许更新新行

转载 作者:行者123 更新时间:2023-11-29 01:13:06 25 4
gpt4 key购买 nike

为什么我在使用这个触发器时会出错?

CREATE TRIGGER save_Assignee AFTER INSERT ON changeitem
FOR EACH ROW
BEGIN
SET new.assignee = (
SELECT assignee
FROM jiraissue INNER JOIN changegroup ON jiraissue.ID = changegroup.issueid
)
END


错误信息:

#1362 - Updating of NEW row is not allowed in after trigger

最佳答案

没错。如果你想修改数据,你需要一个 before insert 触发器:

create TRIGGER save_Assignee BEFORE INSERT ON changeitem FOR EACH ROW
BEGIN
SET new.assignee = (select assignee
from jiraissue INNER JOIN
changegroup
ON jiraissue.ID = changegroup.issueid
)
END

顾名思义,AFTER 插入触发器在数据更新之后 运行。因此,如果您想更新同一行,请使用 before 触发器。

您的子查询看起来很可疑,因为它与 new 不相关,而且它看起来可能返回不止一行。

关于mysql - 后触发器不允许更新新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32629099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com