使用oracle truncate表的时候往往遇到有外键的数据表,这时表无法truncate,你必须先truncate外键表才能truncate当前表,
这里使用另一种办法来解决这个问题:先把外键失效,truncate表之后再把外键生效。
1.查询外键约束
select * from ALL_CONSTRAINTS
WHERE constraint_type='R' and owner='SS_HR';
得到constraint_name 为:如:FK_PERSON_DEPT
2 失效子表的外键约束
ALTER TABLE PERSON DISABLE CONSTRAINT FK_PERSON_DEPT ;
3 再次执行truncate父表数据的操作
TRUNCATE TABLE DEPARTMENT;
4 生效外键约束
ALTER TABLE PERSON enable CONSTRAINT FK_PERSON_DEPT;