错误信息
【汉】ORA-02429:无法删除用于强制执行唯一/主键的索引
【英】ORA-02429: cannot drop index used for enforcement of unique/primary key
环境信息
操作系统 | 数据库版本 | 备注 |
CentOS 7 | Oracle 11G |
序
不要在乎我的示例表名!!!
使用SQL语句删除索引时报错。
故
创建主键时自动生成生成的唯一索引,Oracle不能直接删除索引,而是要删除主键。
Oracle在创建唯一主键或唯一建时,会默认创建与之同名的索引。对于这种索引,不能直接使用drop index语句来删除,而是要删除键约束。
因此,对于和主键名称一致的索引,我们直接删除键,索引会自然随之删除。
解
在删除主键索引时,我们需要先获取主键或唯一键的名称,然后根据名称去删除它。
排查
select *
from dba_constraints
where table_name='A' ;
查到的确是有主键约束后,我们删除约束就行了。
解决
删除表上的主键约束
注意,后面的约束名不能加schemas。
alter table a drop constraint PK_;
评论区