ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 重建表时,遇到ORA-02449: 表中的唯一/主键被外键引用的处理办法

重建表时,遇到ORA-02449: 表中的唯一/主键被外键引用的处理办法

原创 Linux操作系统 作者:thompsun 时间:2011-09-02 09:34:40 0 删除 编辑

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.检查各外键是否得到恢复,系统是否正常.

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

请登录后发表评论 登录
全部评论

注册时间:2009-01-11

  • 博文量
    96
  • 访问量
    252013