oracle数据库中的级联删除操作

来源:互联网 发布:宣益民 知乎 编辑:程序博客网 时间:2024/05/21 07:06
方法一:触发器解决create or replace trigger delete_deptbefore delete on DEPTfor each rowbegin delete from EMP where DEPT_NO = :old.DEPT_NO; delete from POS where DEPT_NO = :old.DEPT_NO;end;/方法二:修改你的外键设置,达到级联删除的目的,具体实现如下: a)先查询出EMP表和POS表中 外键的名称(如果你知道 外键名这一步可以省略) select CONSTRAINT_NAME,TABLE_NAME from user_constraints where CONSTRAINT_TYPE ='R' and TABLE_NAME in('EMP','POS');  b)删除EMP表和POS表上的外键后 重新建立允许级联删除的外键模式   alter table EMP drop constraint 外键名;   alter table POS drop constraint 外键名;   alter table EMP add constraint 外键名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete cascade;   alter table POS add constraint 外键名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete cascade;
方法三与方法二大致相同:
在建立表的时候建立级联删除关系:比如说两个表A,B。B表中的字段bId关联A表中的字段aId,建立B表的时候可以加上
foreign key (bId) references A(aId) on delete cascade