我有1张这样的表
ID parent
1 null
2 1
3 1
现在当我删除ID 1时,我需要自动删除parent = 1的所有行。我尝试触发a / b删除但为递归触发器提供错误。
感谢
答案 0 :(得分:0)
您可能希望查看FOREIGN KEY约束和CASCADE,而不是使用触发器。 https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html
答案 1 :(得分:0)
是的,你不能使用同一个表的触发器,这可能导致死锁,所以在这里你不能使用触发器。
你应该使用外键。这是一个例子
ALTER TABLE `employee` ADD INDEX ( `parent_id` );
ALTER TABLE `employee` ADD CONSTRAINT `employee_ibfk_1` FOREIGN KEY ( `parent_id` ) REFERENCES `test`.`employee` (
`id`
) ON DELETE CASCADE ON UPDATE CASCADE ;
此处删除父数据时,将删除所有子行。