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

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

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

目 录CONTENT

文章目录

Oracle ORA-01502:索引“XXX.XXX”或此类索引的分区处于不可用状态

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

错误信息

【汉】ORA-01502:索引“XXX.XXX”或此类索引的分区处于不可用状态

【英】ORA-01502:index 'string.string' or partition of such index is in unusable state

环境信息

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

在执行数据操作(插入数据)时报错。
image.png

Oracle在执行DML语句时,检测到该表中的唯一索引已经被设置为不可用(UNUSABLE)状态,此时再插入数据时就会报错。

接下来说的是我个人的看法,理解有问题的话,还望看到这篇文章的您们多多包涵。先说下这个索引不可用,何谓不可用?简单说起来就是不能被使用,但索引的定义还在(索引还存在)。

再来说说唯一索引和普通索引的区别,唯一索引简单理解就是比普通索引多了一个唯一值校验。

如果我们将普通索引设置为不可用,对我们的数据插入、修改和删除不会有任何影响,但是唯一索引呢?想想看,将唯一索引设置成不可用,那么在做这种数据操作(插入、修改和删除)时还要不要校验数据唯一性呢?

这个问题Oracle交给我们使用的人决定,它在检测到这类问题时就直接抛出ORA-01502。

从官网的文章来看,解决起来无非就两种。要么删除该索引,要么重建该索引(或分区)。

删除唯一索引

删除索引

drop index TEST_ID_INDEX;

重建索引

重建索引,顾名思义就是重新创建咯,这里没什么可说的。

重建唯一索引

alter index TEST_ID_INDEX rebuild online;

0

评论区