oracle级联删除
2016-12-07 13:10
513 查看
create table dpt(
dptno number(10) not null,
dptname varchar2(30) not null,
constraint pk_dpt primary key(dptno)
)
create table ep(
epno number(10) not null,
epname varchar2(30),
ep_dptno number(10),
constraint pk_ep primary key(epno)
);
方法一:on delete cascade
alter table ep
add constraint fk_ep foreign key(ep_dptno) references dpt(dptno)
on delete cascade;
insert into dpt values(1,'销售部');
insert into dpt values(2,'财务部');
insert into ep values(2,'Mary',1);
insert into ep values(3,'Linda',2);
insert into ep values(4,'Linlin',1);
delete from dpt where dptno=1;
方法二:on delete set null
//alter table ep drop constraint fk_ep(约束名) cascade;#删除约束
alter table ep
add constraint fk_ep foreign key(ep_dptno) references dpt(dptno)
on delete set null
insert into dpt values(1,'销售部');
insert into dpt values(2,'财务部');
insert into ep values(2,'Mary',1);
insert into ep values(3,'Linda',2);
insert into ep values(4,'Linlin',1);
delete from dpt where dptno=1;
方法三:使用触发器
create or replace trigger dpt_ep
before
delete on dpt for each row
begin
delete from ep where ep.ep_dptno=:old.dptno;
end
dptno number(10) not null,
dptname varchar2(30) not null,
constraint pk_dpt primary key(dptno)
)
create table ep(
epno number(10) not null,
epname varchar2(30),
ep_dptno number(10),
constraint pk_ep primary key(epno)
);
方法一:on delete cascade
alter table ep
add constraint fk_ep foreign key(ep_dptno) references dpt(dptno)
on delete cascade;
insert into dpt values(1,'销售部');
insert into dpt values(2,'财务部');
insert into ep values(2,'Mary',1);
insert into ep values(3,'Linda',2);
insert into ep values(4,'Linlin',1);
delete from dpt where dptno=1;
方法二:on delete set null
//alter table ep drop constraint fk_ep(约束名) cascade;#删除约束
alter table ep
add constraint fk_ep foreign key(ep_dptno) references dpt(dptno)
on delete set null
insert into dpt values(1,'销售部');
insert into dpt values(2,'财务部');
insert into ep values(2,'Mary',1);
insert into ep values(3,'Linda',2);
insert into ep values(4,'Linlin',1);
delete from dpt where dptno=1;
方法三:使用触发器
create or replace trigger dpt_ep
before
delete on dpt for each row
begin
delete from ep where ep.ep_dptno=:old.dptno;
end
相关文章推荐
- Oracle多表级联删除方法
- 讲解SQL与Oracle外键约束中的级联删除-PLSQL
- 我做个hibernate oracle 的级联删除发现一篇文章:
- oracle 删除级联树形结构数据
- ORACLE 级联删除 的一些经验
- 解析Oracle中多表级联删除的方法
- 四个表用触发器级联删除Oracle
- oracle不修改constraint方法级联删除到触发器入门
- Oracle多表级联删除方法
- Oracle多表级联删除方法
- Oracle 级联删除
- Oracle多表级联删除方法
- oracle 级联删除
- SQL与ORACLE的外键约束-级联删除
- ORACLE 级联删除
- Oracle Delete inner的方式,级联删除子表的数据方式。
- oracle约束+disable与enable约束+为表添加约束+修改表约束的状态+primary key+not null+unique+foreign key+外键删除数据,可以使用的级联操作
- 解析Oracle中多表级联删除的方法
- 如何在Oracle中批量删除数据
- 意外删除Oracle数据文件(dbf),恢复oralce库的解决办法--Oracle错误代码:ORA-01033