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的级联更新就是使用这个特性来实现的
步骤分为两步:
第一步更改为延迟约束
第二步设置触发器,当主表的主键更改了,就更新子表的外键