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

通过drop命令删除表空间时若提示:

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

此时只需删除主键或唯一性约束的索引即可,方法如下:

1.先查看该表空间下所有索引列表

//此处假设表空间名为temp_tablespace
select I.INDEX_NAME, I.INDEX_TYPE, I.TABLESPACE_NAME, I.TABLE_OWNER 
from DBA_INDEXES I where I.TABLESPACE_NAME = 'TEMP_TABLESPACE';

此时可看见一个或多个主键约束,假设索引名index_name为temp_index,拥有者owner为temp_owner,这时根据索引名称查询所在的表

select C.CONSTRAINT_NAME, C.CONSTRAINT_TYPE, C.TABLE_NAME, C.INDEX_NAME
from DBA_CONSTRAINTS C where index_name = 'TEMP_INDEX';

再假设查得的表名为temptable,删除该表上的约束信息即可。

alter table temp_owner.TEMPTABLE drop constraint TEMP_INDEX cascade;

最后再重新执行删除表空间命令:

drop tablespace tablespace_name 
                [ including contents [ and datafiles ] [ CASCADE CONSTRAINT ] ];
   无选项 -- 当表空间为空才能删除;
   including contents — 删除表空间及对象;
   including contents and datafiles — 删除表空间、对象及数据文件;
   including contents CASCADE CONSTRAINT — 删除关联;
   including contents and datafiles cascade constraint -- 含前两项。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值