Oracle外键级联删除和级联更新
程序员文章站
2022-07-12 16:00:20
...
Oracle外键级联删除和级联更新
Oracle在外键的删除上有NO ACTION(类似RESTRICT)、CASCADE和SET NULL三种行为。
1.1 NO ACTION
NO ACTION指当删除主表中被引用列的数据时,如果子表的引用列中包含该值,则禁止该操作执行。
现在学生外键级联删除是NO ACTION,执行删除班级操作
Oracle会提示违反完整性约束: ORA-02292
1.2 SET NULL
SET NULL指当删除主表中被引用列的数据时,将子表中相应引用列的值设置为NULL值。SET NULL有个前提就是外键引用列必须可以设置为NULL。
把学生表(TB_STUDENT)的外键删除行为改为SET NULL。ORACLE似乎没有MODIFY CONSTRAINT操作,只能先删除外键,然后创建新的。
1.3 CASCADE
CASCADE指当删除主表中被引用列的数据时,级联删除子表中相应的数据行。
把学生表(TB_STUDENT)的外键删除行为改为CASCADE。
上一篇: 用EXISTS替换DISTINCT
下一篇: Oracle 遇到的一些问题