写项目时候遇到这样一个问题,“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) <