每日一记:drop tablespace 报错: “ORA-02429: 无法删除用于强制唯一/主键的索引”

-- drop tablespace PLANDERUSER including contents and datafiles;
-- 报错: “ORA-02429: 无法删除用于强制唯一/主键的索引”

-- 1.查看该表空间下有哪些索引
SELECT I.INDEX_NAME, I.INDEX_TYPE, I.TABLESPACE_NAME, I.TABLE_OWNER
FROM DBA_INDEXES I
WHERE I.TABLESPACE_NAME = 'TBS1';
-- 发现有个索引'ID'是主键约束'P'

-- 2.查看索引ID对应的约束信息
SELECT C.CONSTRAINT_NAME, C.CONSTRAINT_TYPE, C.TABLE_NAME, C.INDEX_NAME
FROM DBA_CONSTRAINTS C  where index_name='ID';
-- 发现索引'ID'在表'T1'上

-- 3.查看索引对应的约束信息
SELECT * FROM DBA_OBJECTS T1 WHERE T1.OBJECT_NAME = 'T1';
-- 发现对应的约束是'ID'

-- 4.查看表所在的表空间
select t1.Table_Name, t1.OWNER, t1.Tablespace_Name From Dba_Tables t1 Where t1.Table_Name = 'T1';
-- 它在USERS表空间下,不是TBS1

-- 5.解决方法:删除表上的约束即可(根据第1、2步中的查询结果)
alter table 表所属用户[I.TABLE_OWNER].表名称[C.TABLE_NAME] drop constraint 约束名称[C.CONSTRAINT_NAME] cascade;
alter table owner.T1 drop constraint ID cascade;
-- 再次删除表空间就可以了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值