背景
表和表之间产生关联关系。 在删除主表或者主表数据的时候,收到从表及从表数据的限制,无法进行完成删除的操作。
基于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的用户