相信不少人遇到过ORA-02429: cannot drop index used for enforcement of unique /primary key 这个错误,对应的中文提示“ORA-02429: 无法删除用于强制唯一/主键的索引”,其实从错误提示信息已经很明显了。下面还是用一个简单的例子述说一下该错误的来龙去脉。

ORA-02429错误的原因是因为用户试图删除一个用于强制唯一/主键的索引,解决方法也很简单,删除对应的约束就会自动删除该索引。

[oracle@DB-Server ~]$ oerr ora 2429

02429, 00000, "cannot drop index used for enforcement of unique/primary key"

// *Cause: user attempted to drop an index that is being used as the

// enforcement mechanism for unique or primary key.

// *Action: drop the constraint instead of the index.

1:新建测试表TAB_TEST, 如下所示:

CREATE TABLE TAB_TEST

(

  JOB_ORDER_NO    VARCHAR2(20 BYTE),

  DIMM_ID         NUMBER,

  MRP_GROUP_CD    VARCHAR2(10 BYTE),

  ITEM_CAT        VARCHAR2(20 BYTE),

  REQUIRED_DATE   DATE,

  PURCHASED_BY    VARCHAR2(10 BYTE),

  USED_BY         VARCHAR2(10 BYTE),

  SUPPLIER_CD     VARCHAR2(10 BYTE)

)

2:添加主键约束,如下所示

ALTER TABLE TAB_TEST

 ADD CONSTRAINT PK_TAB_TEST

  PRIMARY KEY

  (JOB_ORDER_NO, DIMM_ID, MRP_GROUP_CD, ITEM_CAT);

3:查看测试表的索引信息

SQL> SELECT INDEX_NAME FROM DBA_INDEXES WHERE TABLE_NAME='TAB_TEST';

 

INDEX_NAME

------------------------------

PK_TAB_TEST

4:查看测试表的约束信息:

SQL> SELECT CONSTRAINT_NAME FROM DBA_CONSTRAINTS WHERE TABLE_NAME='TAB_TEST';

 

CONSTRAINT_NAME

------------------------------

PK_TAB_TEST

5:删除测试表的索引PK_TAB_TEST

SQL> DROP INDEX PK_TAB_TEST;

DROP INDEX PK_TAB_TEST

           *

ERROR at line 1:

ORA-02429: cannot drop index used for enforcement of unique/primary key

解决方法:

删除对应的约束就会自动删除该索引。而不是直接去删除该索引。很多菜鸟就会直接这样做!

SQL> ALTER TABLE TAB_TEST DROP CONSTRAINT PK_TAB_TEST;

 

Table altered.

 

SQL> SELECT CONSTRAINT_NAME FROM DBA_CONSTRAINTS WHERE TABLE_NAME='CONSTRAINT_NAME';

 

no rows selected

 

SQL> SELECT INDEX_NAME FROM DBA_INDEXES WHERE TABLE_NAME='TAB_TEST';

 

no rows selected

 

SQL> 

 

ORA-02429: cannot drop index used for enforcement of unique /primary key的更多相关文章

  1. 不允许对索引显式地使用 DROP INDEX,该索引正用于 UNIQUE KEY

    [转载]http://blog.csdn.net/w87875251l/article/details/7929657 不允许对索引显式地使用 DROP INDEX,该索引正用于 UNIQUE KEY ...

  2. mysql中key 、primary key 、unique key 与index区别

    一.key与primary key区别 CREATE TABLE wh_logrecord ( logrecord_id ) NOT NULL auto_increment, ) default NU ...

  3. MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的区别

    参考:MySQL中KEY.PRIMARY KEY.UNIQUE KEY.INDEX 的区别 对于题目中提出的问题,可以拆分来一步步解决.在 MySQL 中 KEY 和 INDEX 是同义.那这个问题就 ...

  4. 【Mysql】key 、primary key 、unique key 与index区别

    参考:https://blog.csdn.net/nanamasuda/article/details/52543177 总的来说,primary key .unique key 这些key建立的同时 ...

  5. MySQL 中 key, primary key ,unique key,index的区别

    一.key与primary key区别 CREATE TABLE wh_logrecord ( logrecord_id int(11) NOT NULL auto_increment, user_n ...

  6. DROP INDEX - 删除一个索引

    SYNOPSIS DROP INDEX name [, ...] [ CASCADE | RESTRICT ] DESCRIPTION 描述 DROP INDEX 从数据库中删除一个现存的索引. 要执 ...

  7. SQL DROP INDEX 语句

    SQL DROP INDEX 语句 我们可以使用 DROP INDEX 命令删除表格中的索引. 用于 Microsoft SQLJet (以及 Microsoft Access) 的语法: DROP ...

  8. FOREIGN KEY 外键约束; UNIQUE和PRIMARY KEY 主键约束、CREATE INDEX建立索引的使用

    1)foreign key 是个约束,意思是说如果你给A字段设置了外键约束,以后你要往A字段插入数据,这个数据一定是要在foreign key 后面跟的那个字段中存在的值.这个的意义就是约束了数据的完 ...

  9. Primary key and Unique index

    SQL> create table t1(id1 char(2),id2 char(2),id3 char(2)); Table created. SQL> desc t1 Name Nu ...

随机推荐

  1. 浅谈移动端之touch事件--手指的滑动事件

    今天台风‘海马’袭击深圳,全市停工.现分享一篇关于touch的文章,望指教! 原理: 当开始一个touchstart事件的时候,获取此刻手指的横坐标startX和纵坐标startY: 当触发touch ...

  2. jQuery实现checkbox的全选和反选

    $(function () { if ($(".chk_all")) { $(".chk_all").click(function () { $("i ...

  3. 通过寄生组合式继承创建js的异常类

    最近项目中在做js的统一的异常处理,需要自定义异常类.理想的设计方案为:自定义一个异常错误类BaseError,继承自Error,然后再自定义若干个系统异常,例如用户取消异常.表单异常.网络异常,这些 ...

  4. 对于SQL Server,我需要多少内存

    经常被问到的一个问题:对于SQL Server,我需要多少内存?这个问题还是有同样的典型的“看情况而定”答案.在今天的文章里,我们来详细看下“看情况而定的”的不同方面. 全新SQL Server安装 ...

  5. Sublime插件支持Sass编译和Babel解析ES6 & .sublime-build文件初探

    用Sublime Text蛮久了,配置配来配去的,每次换电脑都得重头再配过,奈何人老了脑子不中用了,得好好整理一些,下次换电脑就有得参考了.. 同事说,他的WebStorm简直太方便,自身集成了很多方 ...

  6. FPGA的引脚VCCINT 、VCCIO VCCA

    首先是看到FPGA在配置的时候有三种不同的电VCCINT .VCCIO VCCA,于是就查了下有什么不同: FPGA一般会有许多引脚,那它们都有什么用呢? VCCINT为施加于 FPGA 内核逻辑的电 ...

  7. [Asp.net 5] Logging-日志系统的基本架构(下)

    接上节内容,我们继续讲解日志的其他部分. ILoggerProvider以及扩展类 我们在上节的架构图上并没有看到有直接实现该接口的实现类.那么如果将Logger类直接使用会有什么结果呢? var f ...

  8. customErrors与错误页面

    本配置节相对简单而且常用 <customErrors defaultRedirect="url" mode="On|Off|RemoteOnly"> ...

  9. .net实现与excel的数据交互、导入导出

    应该说,一套成熟的基于web的管理系统,与用户做好的excel表格进行数据交互是一个不可或缺的功能,毕竟,一切以方便客(jin)户(qian)为宗旨. 本人之前从事PHP的开发工作,熟悉PHP的都应该 ...

  10. javascript快速入门

    这个在w3school在线文档讲解的很详细,还能在线练习. 所以我只写一些入门的东西和最常用的总结以及注意事项: JavaScript 是脚本语言 一般被人们称为JS,Jquery就是对js语言的封装 ...