truncate有外键约束的表,报ORA-02266处理。

问题描述:当父表有子表的外键约束时,无法直接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,转载请标明出处。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31383567/viewspace-2131336/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31383567/viewspace-2131336/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值