我有一个表,其中使用parent_id字段将到达行链接到自身。
PERSON TABLE: ID 名称 年龄 PARENT_ID
当我删除一行时,我希望子行重新链接到正在删除的行的父行。
可以使用约束来完成吗?或者我每次删除时都必须手动将其编码到我的程序逻辑中吗?
答案 0 :(得分:0)
您无法使用 CONSTRAINTS 的内置实现来实现您所需的内容。
ON DELETE *reference_option*
子句接受4个不同的参考选项值 -
RESTRICT | CASCADE | SET NULL | NO ACTION
RESTRICT 不允许您删除记录
CASCADE 将从父表中删除记录以及从子表中删除记录(参考记录)。
SET NULL 将允许您删除父记录并将子表中的列值设置为NULL。
NO ACTION 等同于RESTRICT。
您必须编写自定义代码才能获得所需内容。