重建主键索引为非压缩索引

重建主键索引为非压缩索引

删除约束的同时删除该约束对应的索引

数据库:Oracle 11.2.0.4
因为项目需要,需要将一个主键索引由压缩索引改为非压缩索引
这里的index_name代表了主键名称,也代表主键索引名称,两个同名

坑1

drop index index_name --这个不可以的原因是该分区表是组合分区表,分区和子分区

坑2

--这里不成功的原因在于 alter table table_name drop constraint index_name;
--虽然创建逐渐的时候是using index自动创建的索引
--但是这个删除还是只是删除的主键约束,没删掉索引,所以索引还是旧的(压缩索引)

--Create NOCOMPRESS index
alter table table_name drop constraint index_name;

-- Create/Recreate primary, unique and foreign key constraints 
alter table table_name
  add constraint index_name primary key (col1, col2, col2)
  using index 
  local
  NOCOMPRESS;--"注意这里,改为非压缩"
alter index index_name nologging;

成功

--只要将删除语句改为alter table table_name drop primary key drop index;即可
--这里显式指定要删除index

--Create NOCOMPRESS index
alter table table_name drop primary key drop index;--"注意这里"

-- Create/Recreate primary, unique and foreign key constraints 
alter table table_name
  add constraint index primary key (col1, col2, col3)
  using index 
  local
  NOCOMPRESS;--"注意这里,改为非压缩"
alter index index_name nologging;

你可能感兴趣的:(重建主键索引为非压缩索引)