博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
truncate有外键约束的表,报ORA-02266处理。
阅读量:6529 次
发布时间:2019-06-24

本文共 1160 字,大约阅读时间需要 3 分钟。

问题描述:当父表有子表的外键约束时,无法直接truncate父表。报ORA-02266: unique/primary keys in table referenced by enabled foreign keys。

这里使用另一种办法来解决这个问题:先把外键失效,truncate表之后再把外键生效。
SQL> truncate table machine_room;
truncate table machine_room
*
ERROR at line 1:
ORA-02266: unique/primary keys in table referenced by enabled foreign keys

1.查询外键约束

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,R_CONSTRAINT_NAME from ALL_CONSTRAINTS WHERE constraint_type='R' and owner='UML';

TABLE_NAME CONSTRAINT_NAME R_CONSTRAINT_NAME

------------------------------ ------------------------------ ------------------------------
TEAM FK_T_SCHOOL01 PK_T_SCHOOL
TEAM_MESSAGE FK_T_TEAM04 PK_T_TEAM
TEAM_MESSAGE FK_T_SCHOOL0 PK_T_SCHOOL
RACE_SEAT FK_T_MACHINE_ROOM02 PK_T_MACHINE
RACE_SEAT FK_T_TEAM02 PK_T_TEAM
RACE_MARK FK_T_TEAM03 PK_T_TEAM

6 rows selected.

2. 失效子表的外键约束 (所有外键)

SQL> ALTER TABLE race_seat DISABLE CONSTRAINT fk_t_machine_room02 ;

Table altered.

3. 再次执行truncate父表数据的操作

SQL> truncate table machine_room;

Table truncated.

4. 生效外键约束 (刚才所有失效外键)

SQL> ALTER TABLE race_seat enable CONSTRAINT fk_t_machine_room02;

Table altered.

ok,转载请标明出处。

转载于:https://www.cnblogs.com/andy6/p/6219447.html

你可能感兴趣的文章
linux C 9*9
查看>>
hdu 1695: GCD 【莫比乌斯反演】
查看>>
python的string操作总结
查看>>
如何把word中的图片怎么导出来呢?
查看>>
Python连接Arduino的方法
查看>>
CMD指令大全
查看>>
十五天精通WCF——第二天 告别烦恼的config配置
查看>>
Qt多线程学习:创建多线程
查看>>
设计模式学习---UML常见关系的实现
查看>>
图解openssl实现私有CA
查看>>
BZOJ2213 : [Poi2011]Difference
查看>>
c++ Constructor FAQ 继续
查看>>
事务之六:spring 嵌套事务
查看>>
C#:路径
查看>>
js表单计算金额问题
查看>>
iOS图片加载速度极限优化—FastImageCache解析
查看>>
PHP中的一些新特性
查看>>
Jmockit使用
查看>>
I.MX6 Android mmm convenient to use
查看>>
[CareerCup] 13.9 Aligned Malloc and Free Function 写一对申请和释放内存函数
查看>>