案例:对一张表alter table A1 disable constraint A1_RKEY/A1_PKEY 后,删除了这张表。
      现在恢复了A1表,但是不清楚A1表的约束。
      倒是A2表的约束和A1相同,只是名字不同。
问题:如何查看A2表的完整约束?并且恢复A1的原有约束。
      

解决方案 »

  1.   


    select * from user_constraints where table_name = ''
      

  2.   

    会用Enterprise Manager Console吗?oracle 9i的
      

  3.   

    2楼正解。
    select * from user_constraints where table_name = 'A2'
      

  4.   

    这个条件查出来怎么是 未选定行呢。
    改成:select * from user_constraints where constraint_name='';倒可以。
    select a.OWNER,
    a.CONSTRAINT_NAME,
    a.CONSTRAINT_TYPE,
    a.TABLE_NAME,
    b.COLUMN_NAME,
    a.SEARCH_CONDITION
    from USER_CONSTRAINTS a,USER_CONS_COLUMNS b
    where a.CONSTRAINT_NAME=b.CONSTRAINT_NAME;alter table A2 enable constraint A2_RKEY/PKEY;
      

  5.   

    直接使用PLSQL或TOAD等工具查看一下就可以
      

  6.   

    先查看A1表是否有约束.语句如下:select CONSTRAINT_NAME,TABLE_NAME,SEARCH_CONDITION from user_constraints where table_name = 'A1';如果有记录,先删掉,语句如下:
    alter table A1 drop constraint constraint_name;将A2的约束查出来,语句如下:
    select CONSTRAINT_NAME,TABLE_NAME,SEARCH_CONDITION from user_constraints where table_name = 'A2';最后将A2的约束付给A1!!