侧边栏壁纸
博主头像
与晚风述往事博主等级

万般皆下品,唯有读书高。

  • 累计撰写 149 篇文章
  • 累计创建 29 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

Oracle ORA-02429:无法删除用于强制执行唯一/主键的索引

与晚风述往事
2021-11-04 / 0 评论 / 0 点赞 / 291 阅读 / 472 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-11-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

错误信息

【汉】ORA-02429:无法删除用于强制执行唯一/主键的索引

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

环境信息

操作系统 数据库版本 备注
CentOS 7 Oracle 11G

不要在乎我的示例表名!!!

使用SQL语句删除索引时报错。
image.png

创建主键时自动生成生成的唯一索引,Oracle不能直接删除索引,而是要删除主键。

Oracle在创建唯一主键或唯一建时,会默认创建与之同名的索引。对于这种索引,不能直接使用drop index语句来删除,而是要删除键约束。

因此,对于和主键名称一致的索引,我们直接删除键,索引会自然随之删除。

在删除主键索引时,我们需要先获取主键或唯一键的名称,然后根据名称去删除它。

排查

select *
from dba_constraints
where table_name='A' ;

image.png

查到的确是有主键约束后,我们删除约束就行了。

解决

删除表上的主键约束

注意,后面的约束名不能加schemas。

alter table a drop constraint PK_;

image.png

0

评论区