将已有的分区表全局索引改为本地索引

时间:2021-04-08 04:37:54

由于当初建表的时候建了两张需要存储大量数据的分区表,却没有建立本地索引,而是使用建立主键的时候,Oracle自动建立的全局索引。

最近由于表空间问题drop了这两张表的部分分区,结果导致了ora-01502,索引失效了。

在网上找了很多方法,用如下方法将全局索引改为了本地索引,避免了以后再次对分区进行操作时索引失效的问题。


1. 先删除主键约束,oracle会自动删除建表时根据主键自动创建的全局索引


alter table tablename drop PRIMARY KEY;


2. 重建主键并指定索引为本地索引


alter table tablename add constraint PK_XXX  PRIMARY KEY(column1,column2,....) using index local tablespace XXX;