在删除时将子行的parent_id设置为parent_id

时间:2016-01-23 07:52:30

标签: mysql

我有一个表,其中使用parent_id字段将到达行链接到自身。

PERSON TABLE: ID 名称 年龄 PARENT_ID

当我删除一行时,我希望子行重新链接到正在删除的行的父行。

可以使用约束来完成吗?或者我每次删除时都必须手动将其编码到我的程序逻辑中吗?

1 个答案:

答案 0 :(得分:0)

您无法使用 CONSTRAINTS 的内置实现来实现您所需的内容。

ON DELETE *reference_option*子句接受4个不同的参考选项值 -

RESTRICT | CASCADE | SET NULL | NO ACTION

RESTRICT 不允许您删除记录

CASCADE 将从父表中删除记录以及从子表中删除记录(参考记录)。

SET NULL 将允许您删除父记录并将子表中的列值设置为NULL。

NO ACTION 等同于RESTRICT。

您必须编写自定义代码才能获得所需内容。