Mysql 触发器触发另一个触发器不工作
我有四张桌子和两个触发器Mysql 触发器触发另一个触发器不工作,mysql,sql,triggers,Mysql,Sql,Triggers,我有四张桌子和两个触发器 Table A tirggerA , when before delete === > insert deleted data into Tabele AAAAA Table B tirggerB , when before delete === > insert deleted data into Tabele BBBBB 问题是triggerB在删除表B中的一些数据时工作得很好 我想要的是从TableA中删除数据时 表A的已删除数据
Table A tirggerA , when before delete === > insert deleted data into Tabele AAAAA
Table B tirggerB , when before delete === > insert deleted data into Tabele BBBBB
问题是triggerB在删除表B中的一些数据时工作得很好
我想要的是从TableA中删除数据时
问题是,当表A中的某些数据被删除时,TriggerB似乎永远不会触发。实际上它应该可以工作,因为我在这些表之间有级联删除关系。有什么想法吗?答案是将
delete
命令放在表A的触发器中
此外,您还需要将代码放入删除后的触发器中,在删除前,删除尚未发生,可能会被反转
DELIMITER $$
CREATE TRIGGER ad_tableA_each AFTER DELETE ON tableA FOR EACH ROW
BEGIN
INSERT INTO tableAAAA (f1,f2,f3) VALUES (old.f1, old.f2, old.f3);
DELETE FROM tableB b WHERE b.a_id = old.id; /*use this instead of foreign key*/
END $$
CREATE TRIGGER ad_tableB_each AFTER DELETE ON tableB FOR EACH ROW
BEGIN
INSERT INTO tableBBBB (f1,f2,f3) VALUES (old.f1, old.f2, old.f3);
END $$
DELIMITER ;
大家好。。我只是没有在两个表之间使用级联删除,而是将表B的DELETE命令放在Tirgera中。现在效果很好。谢谢。:)