1.假设分区表的分区列为(EVENTTIME)
2.注意以下情况:
2.1 如果列不是分区列,单列不能建本地分区唯一索引。
create UNIQUE index idx_AUDITRECORD_0330_unq on AUDITRECORD_0330 (IDA2A2) local TABLESPACE INDX;
>> create UNIQUE index idx_AUDITRECORD_0330_unq on AUDITRECORD_0330 (IDA2A2) local TABLESPACE INDX
行 1 出错
ORA-14039: 分区列必须构成 UNIQUE 索引的关键字列子集
脚本已在第 2行终止。
2.2 如果要建本地分区唯一索引,有两种方式可以建:
- 单个分区列。
- 包含分区列的组合索引。
create UNIQUE index idx_AUDITRECORD_0330_unq on AUDITRECORD_0330 (IDA2A2,EVENTTIME) local TABLESPACE INDX;
2.3 可以把本地分区唯一索引设为表主键
ALTER TABLE WCADMIN.AUDITRECORD_0330 ADD (
CONSTRAINT PK_AUDITRECORD_0330
PRIMARY KEY
(IDA2A2,EVENTTIME)
USING INDEX WCADMIN.idx_AUDITRECORD_0330_unq
ENABLE VALIDATE);
2.4 本地分区唯一索引和本地分区索引一样,当对分区进行删除分区操作时,索引不会失效。
----查看分区索引状态
select index_owner,index_name,partition_name,tablespace_name,num_rows,last_analyzed,status From dba_ind_partitions where INDEX_OWNER ='WCADMIN' and index_name='IDX_AUDITRECORD_0330_UNQ' and status='USABLE';
select index_name,status,count(*) from dba_ind_partitions where INDEX_OWNER ='WCADMIN' group by index_name,status;