constraint enable,disable的問題解決
--disable的問題
ALTER TABLE EMPLOYEES DISABLE CONSTRAINT EMP_EMP_ID_PK
*
ERROR at line 1:
ORA-02297: cannot disable constraint (HR.EMP_EMP_ID_PK) - dependencies exist
SQL> !oerr ora 02297
02297, 00000,"cannot disable constraint (%s.%s) - dependencies exist"
// *Cause: an alter table disable constraint failed becuase the table has
// foriegn keys that are dpendent on this constraint.
// *Action: Either disable the foreign key constraints or use disable cascade
SQL> show user
USER is "HR"
SQL> alter table employees disable constraint EMP_EMP_ID_PK cascade;
Table altered.
SQL> select constraint_name,constraint_type ,status from user_constraints where table_name='EMPLOYEES';
CONSTRAINT_NAME C STATUS
------------------------------ - --------
EMP_LAST_NAME_NN C DISABLED
EMP_EMAIL_NN C DISABLED
EMP_HIRE_DATE_NN C DISABLED
EMP_JOB_NN C DISABLED
EMP_SALARY_MIN C DISABLED
EMP_EMAIL_UK U DISABLED
EMP_EMP_ID_PK P DISABLED
EMP_MANAGER_FK R DISABLED
EMP_JOB_FK R DISABLED
EMP_DEPT_FK R DISABLED
10 rows selected.
--關於enable的問題
SQL> select constraint_name,constraint_type ,status from user_constraints where table_name='EMPLOYEES';
CONSTRAINT_NAME C STATUS
------------------------------ - --------
EMP_LAST_NAME_NN C ENABLED
EMP_EMAIL_NN C ENABLED
EMP_HIRE_DATE_NN C ENABLED
EMP_JOB_NN C ENABLED
EMP_SALARY_MIN C ENABLED
EMP_EMAIL_UK U DISABLED
EMP_EMP_ID_PK P DISABLED
EMP_MANAGER_FK R DISABLED
EMP_JOB_FK R ENABLED
EMP_DEPT_FK R ENABLED
10 rows selected.
SQL> ALTER TABLE EMPLOYEES ENABLE CONSTRAINT EMP_EMP_ID_PK ;
ALTER TABLE EMPLOYEES ENABLE CONSTRAINT EMP_EMP_ID_PK
*
ERROR at line 1:
ORA-14063: Unusable index exists on unique/primary constraint key
SQL> !oerr ora 14063
14063, 00000, "Unusable index exists on unique/primary constraint key"
// *Cause: User attempted to add or enable a primary key/unique constraint
// on column(s) of a table on which there exists an index marked
// Index Unusable.
// *Action: Drop the existing index or rebuild it using ALTER INDEX REBUILD
SQL> select index_name from user_indexes where table_name='EMPLOYEES';
INDEX_NAME
------------------------------
EMP_EMAIL_UK
EMP_EMP_ID_PK
EMP_DEPARTMENT_IX
EMP_JOB_IX
EMP_MANAGER_IX
EMP_NAME_IX
6 rows selected.
SQL> ALTER INDEX EMP_EMP_ID_PK REBUILD;
Index altered.
SQL> ALTER TABLE EMPLOYEES ENABLE CONSTRAINT EMP_EMP_ID_PK;
Table altered.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-747180/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Constraint State(disable/enable validate/noalidate)AI
- alter table modify constraint_disable_enable_novalidateAI
- [20120824]oracle中的 CONSTRAINT 屬性ENABLE DISABLE VALIDATE NOVALIDATE.txtOracleAI
- disable/enable validate/novalidate 的區別
- 使用deferred constraint 解決“先有蛋還是先有雞的問題”AI
- 解決「問題」,不要解決問題
- How to Check and Enable/Disable Oracle Binary Options (文件 ID 948061.1)Oracle
- Logical Standby中的supplemental logging和rely disable constraintAI
- 解決問題
- oracle學習(2)-Oracle約束的關鍵字Enable/Disable/Validate/NovalidateOracle
- 發現問題,解決問題
- 【問題解決】單機搭建dataguard的問題
- 黑蘋果的問題解決蘋果
- 遇到問題的解決方法
- display:flex解決的問題Flex
- 解決bigdecime的問題
- oracle 鎖問題的解決Oracle
- vpd碰到的問題解決
- 驢解決不了的問題
- 解決 Unexpectedlexicaldeclarationincaseblock的問題BloC
- 解決github訪問慢的問題Github
- 解決 github 訪問不了的問題Github
- mysql 加大 了logfile之後,遇到innodb disable的問題MySql
- yum問題解決
- sqlitedabaseislocked問題解決SQLite
- dump 解決問題
- 解決Redmine建立&更新問題時很慢的問題
- 解決問題的方法和途徑-問題管理
- oracle OEM中 Accessibility Mode disable解決辦法Oracle
- 解決JS跨域訪問的問題JS跨域
- 提升解決問題能力的思考
- JAR衝突問題的解決JAR
- 01揹包問題的解決
- 解決localdb中文智慧的問題
- 今天解決的兩個問題
- **PHPNotice:Undefinedindex:…問題的解決方法PHPUndefinedIndex
- 【轉】css解決相容的問題CSS
- oracle壞塊問題的解決Oracle