我有三个表A,B,C。
A表中有一个状态字段status,初始值是0
B表中插入数据后,A.status=2
然后我需要在A.status=2时执行一个存储过程往C表中插入数据。
插入完成后,需要改A.status=6。我原来是通过在A表中加个触发器来做的。但是最后一步A.status=6无法实现,因为触发器限制了,不允许操作本表。问下大家有没有什么其他合适的解决方案,能实现我的需求。触发器
A表中有一个状态字段status,初始值是0
B表中插入数据后,A.status=2
然后我需要在A.status=2时执行一个存储过程往C表中插入数据。
插入完成后,需要改A.status=6。我原来是通过在A表中加个触发器来做的。但是最后一步A.status=6无法实现,因为触发器限制了,不允许操作本表。问下大家有没有什么其他合适的解决方案,能实现我的需求。触发器
[Err] 1362 - Updating of NEW row is not allowed in after trigger
BEGIN
IF(new.status = 2) THEN
CALL sp_harddisk_asset_inventory(new.inventory_id);
SET new.status = 6;
END IF;
END
如果执行的话,这个UPDATE语句中的状态值是2还是6?
因为我是希望C表写入完成后,再改状态是6.
如果出错了,我希望状态还是2,不要改成6.
如果SP有误,在SP中判断结果,如有问题,执行1个错误的SQL语句
自行测试一下