mysql:删除删除ID后删除列= ID的行

时间:2018-04-19 13:08:48

标签: mysql

我有1张这样的表

ID   parent
1    null
2    1
3    1

现在当我删除I​​D 1时,我需要自动删除parent = 1的所有行。我尝试触发a / b删除但为递归触发器提供错误。

感谢

2 个答案:

答案 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 ;

此处删除父数据时,将删除所有子行。