oracle数据库的级联删除

背景

  表和表之间产生关联关系。 在删除主表或者主表数据的时候,收到从表及从表数据的限制,无法进行完成删除的操作。

基于drop的级联删除

   1 drop table 主表的名字 cascade constraint -- 1、删除从表中外键列 2、删除主表 

基于delete的级联删除

  建表的时候,  在外键列的后面添加 on cascade constraint  

 1   create table lg( -- 老公表
 2 
 3     lgid number(10) primary key,
 4 
 5     lgname varchar2(20) not null
 6 
 7   );
 8 
 9   create table lp( -- 老婆表
10 
11     lpid number(10) primary key,
12 
13     lpname varchar2(20) not null,
14 
15     lgid varchar2(20) references lg(lgid) on delete  cascade unique -- 1:1关系的建立  + delete级联删除预处理
16 
17   )

  插入数据 

    

1 insert into lg values(1001,'小明');
2 insert into lp values(1,'小红',1001)

  数据插入完毕   lg表和lp表中各有一条数据   其中lp表中的记录指向lg表中记录

    

  测试delete级联删除效果 

    1 delete from lg where lgid = 1001 -- 1、删除从表(lp表)中与相关联的记录 2、删除主表中lgid为1001的用户 

    

猜你喜欢

转载自www.cnblogs.com/xuchuang/p/11866872.html