关于Oracle 级联操作

在项目中,遇到A表和B表父子关联的问题,删除A表中的关联行后,发现B表仍有关联记录。Oracle提供了级联操作解决此问题。外键是实现级联操作的关键,定义外键的SQL语句可以设置级联删除约束,或者通过触发器和存储过程实现。本文记录了使用`ON DELETE CASCADE`进行级联删除的方法。
摘要由CSDN通过智能技术生成

    写项目时候遇到这样一个问题,“A表与B表的关系是父子关联关系,A是B的父,将A中某一已经与B进行关联的行进行删除操作,之后发现B表仍存在关联关系“,故思考如何在数据库进行操作,经过百度以及查阅书籍,得知Oracle本身是有级联操作的。

    在此记录。

   提到“级联操作”必离不开”外键“何为外键? --”如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键;

   定义外键的sql语句:

foreign key(idB) references A(idA)
 

 key之后的是主表的id,references A(id A) 则为子表的表名(子表的关联id)

 

外键约束事件触发。既然有外键约束,当违反约束时会发生什么?我们把它的反应看作事件,一共有四种:

        1、级联:当主表更改时,从表跟从更改。

        2、不执行任何操作。

        3、设置null。

        4、设置默认值。

        

例如:  图中 重症肌无力是肌肉萎缩的子类,那么当关联关系确定之后,删除其中某一个,则关联关系表中所对应的关联关系也被删除。

主表A ILLINFO(我项目中的表名) 子表B (ILLINFO_ILLINFO) <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值