Oracle数据库级联删除、级联更新问题

Oracle 数据库级联删除的实现

    代码:

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

相关解释:   

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

        references的作用是赋予权限

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

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

Oracle 数据库级联更新

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

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

步骤分为两步:

第一步更改为延迟约束

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

猜你喜欢

转载自blog.csdn.net/qq_41173453/article/details/80286876