1. 程式人生 > >使用truncate ,截斷有外鍵約束的父表

使用truncate ,截斷有外鍵約束的父表

添加 reference http 原來 where 查詢 TP span cas

技術分享圖片

技術分享圖片

此時有兩種方法,解決
1.刪除外鍵約束,刪除該表,在重建外鍵約束
--查詢外鍵約束
select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,R_CONSTRAINT_NAME

from ALL_CONSTRAINTS

WHERE constraint_type=‘R‘ and owner=‘SCOTT‘;

技術分享圖片

刪掉外鍵約束

alter table emp drop constraint fk_deptno;

技術分享圖片

truncate 表後如果仍然想要關聯原來的子表,重新添加約束

alter table emp add constraint fk_deptno foreign key (deptno) references dept (deptno) on delete cascade;


2.使用禁止方式,使外鍵失效,truncate 表後重新使生效,不重建約束

ALTER TABLE emp DISABLE CONSTRAINT fk_deptno ;
truncate父表數據的操作
truncate table dept;

重新生效外鍵約束
ALTER TABLE emp enable CONSTRAINT fk_deptno;

文章可以轉載,必須以鏈接形式標明出處。

使用truncate ,截斷有外鍵約束的父表