欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle数据库级联删除、级联更新的实现

程序员文章站 2023-12-01 18:21:22
oracle 级联删除的实现 代码: --设置外键约束(可以通过consteraint给约束命名) p_m number(10) references main(m_id) o...

oracle 级联删除的实现

代码:

 --设置外键约束(可以通过consteraint给约束命名)
       p_m number(10) references main(m_id) on delete cascade

相关解释:

foreign key 的作用是定义外键约束

regerences的作用是赋予权限

on delete cascade 级联删除,彻底删除相关数据

on delete set null 半级联删除,会将子表中对应的值设为null(前提是外键引用列可以设置为null )

oracle 数据库级联更新

oracle数据库本身不支持外键的级联更新,不过我们可以有其他方法达到级联更新的效果(oracle的延迟约束和非延迟约束)

非延迟约束就是在修改记录的时候会立刻进行约束条件的查看,看是否因为违反了某些约束条件而不能执行修改。延迟约束不会在刚进行修改的时候进行约束查看,只有提交的时候才会检查。oracle的级联更新就是使用这个特性来实现的

步骤分为两步:

第一步更改为延迟约束

第二步设置触发器,当主表的主键更改了,就更新子表的外键