oracle10g_exceptions異常表_記錄違犯pk_unique key約束資訊

wisdomone1發表於2010-08-13

--構建一個儲存違犯pk及unique key約束的記錄表,須包括列:table_name,owner,rowid,constraint_name

SQL> alter table test enable constraint pk_test exceptions into exceptions; --透過alter 開啟約束且exceptions into 以上建立的表(表名可隨意)
alter table test enable constraint pk_test exceptions into exceptions
*
ERROR at line 1:
ORA-02437: cannot validate (SCOTT.PK_TEST) - primary key violated

SQL> select a.*   --用此sql可查詢開啟pk 及unique 約束違犯約束的相關記錄,根據業務另行delete重複記錄或更新操作
  2  from test a,exceptions
  3  where a.rowid=exceptions.row_id;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        40 it             beijing
        40 OPERATIONS     BOSTON


小結:
  exceptions表不會自動清除以有記錄,須truncate

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-670942/,如需轉載,請註明出處,否則將追究法律責任。

相關文章