博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
constraint enable,disable的问题解决
阅读量:2446 次
发布时间:2019-05-10

本文共 2466 字,大约阅读时间需要 8 分钟。

 

--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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23718752/viewspace-747180/

你可能感兴趣的文章
python快速排序_Python快速排序
查看>>
人工神经网络导论_神经网络导论
查看>>
C ++ STL无序多集– std :: unordered_multiset
查看>>
深度学习导论
查看>>
go-back-n_iMyFone D-Back iPhone数据恢复
查看>>
MailboxValidator –批量电子邮件列表清理服务
查看>>
机器学习中常见的最优化算法_最常见的机器学习算法
查看>>
5个最佳Python机器学习IDE
查看>>
c++中将字符串转化为数字_在C和C ++中将十进制数转换为罗马数字
查看>>
unity 粒子系统反弹_零反弹-最佳电子邮件验证系统
查看>>
rail_deviceid_C和C ++中的Rail Fence密码程序[加密和解密]
查看>>
数字转日期 pl/sql_交换两个数字的PL / SQL程序
查看>>
stl set容器_C ++ STL设置容器– std :: set
查看>>
HTML和HTML5之间的区别
查看>>
android mvp示例_Android使用SwipeRefreshLayout示例向下拉或向下滑动以刷新
查看>>
在Android中获取当前日期的4种方法
查看>>
windows便笺_如何将便笺提醒附加到Windows和应用程序
查看>>
加密货币钱包提供商_每日新闻摘要:一位加密货币钱包开发者为了保护用户而黑客攻击
查看>>
chromebook刷机_每日新闻摘要:Google终止了将Windows引入Chromebook的项目
查看>>
vue alexa:_免费下载:在任何PC上使用Alexa免提
查看>>