【发布时间】:2020-05-17 03:18:27
【问题描述】:
我想创建一个触发器,当状态更改为“库存”时设置新的 org_id。
我有 2 个表:具有属性 org_id 的功能性和具有状态的物理设备。
调用触发器的更新是这样的:
UPDATE functionalci f
JOIN physicaldevice d
ON f.id = d.id
SET d.status = 'stock', f.name ="XXX"
WHERE d.id = 2
当我尝试像这样的触发器时:
CREATE TRIGGER trig1
AFTER UPDATE ON physicaldevice
FOR EACH ROW
BEGIN
UPDATE functionalci SET org_id=2 WHERE functionalci.id = OLD.id;
END;
我有这个错误:mysql_errno = 1442, mysql_error = Can't update table 'functionalci' in stored function/trigger 因为它已被调用此存储函数/触发器的语句使用
有什么方法可以在不更改调用它的 UPDATE 的情况下执行触发器?
【问题讨论】:
-
存储的函数或触发器不能修改已被调用函数或触发器的语句使用(用于读取或写入)的表。您尝试更改在此查询中更新的另一个表 - 抱歉...
标签: mysql triggers mysql-error-1442