Oracle--ORA-02449

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

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

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

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

3.执行步骤2中产生的SQL语句,获取外键定义.

  set long 3000
  set linesize 3000
  set pagesize 300
  执行步骤2产生的语句.

4.删除表.

  drop table mytest cascade constraints;

5.删除并重建表.

6.建立因创建该表所删除的外键约束.

  执行步骤3中获取到的sql语句.

7.检查各外键是否得到恢复,系统是否正常.
(引用出処不明)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值