虚拟化容器,大数据,DBA,中间件,监控。

oracle 删除drop表报错:ORA-02449: 表中的唯一/主键被外键引用

02 12月
作者:admin|分类:DBA运维



SQL> drop table te_equip;

drop table te_equip
           *
第 1 行出现错误:

ORA-02449: 表中的唯一/主键被外键引用


检查哪些表的外键引用了要删除的表的唯一/主键.

select A.*
  from user_constraints A, user_constraints B
 WHERE b.table_name = 'TE_EQUIP'
   and a.constraint_type = 'R'
   and a.r_constraint_name = b.constraint_name;

会得到外健关系表的信息,可以查看相联的表。



生成所有引用要删除表的外键的创建语句.

select 'select dbms_metadata.get_ddl(''REF_CONSTRAINT'',''' ||
       A.CONSTRAINT_NAME || ''') FROM DUAL;'
  from user_constraints A, user_constraints B
 WHERE b.table_name = 'TE_EQUIP'
   and a.constraint_type = 'R'
   and a.r_constraint_name = b.constraint_name;



  ALTER TABLE "NEUDDC"."TH_TARGETONLINE" ADD CONSTRAINT "FK_TH_TARGETONLINE1" FOREIGN KEY ("SIM")
      REFERENCES "NEUDDC"."TE_EQUIP" ("SIM") ENABLE

上面是生成一个表外键关系的sql语句。保留此sql语句。


然后,可以删除表.

SQL> drop table TE_EQUIP cascade constraints;


现在可以重建被删除的表了,具体就不说了。

最后建立因创建该表所删除的外键约束,执行上面的sql语句。

完成后检查各外键是否得到恢复,系统是否正常。




浏览3270 评论0
返回
目录
返回
首页
ORACLE编译失效对象 XenServer加载(映射)U盘、加密狗等USB接口设备