溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

oracle分區(qū)表全局唯一索引失效導(dǎo)致無法增刪改怎么辦

發(fā)布時間:2021-11-10 14:19:31 來源:億速云 閱讀:605 作者:小新 欄目:關(guān)系型數(shù)據(jù)庫

這篇文章主要為大家展示了“oracle分區(qū)表全局唯一索引失效導(dǎo)致無法增刪改怎么辦”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“oracle分區(qū)表全局唯一索引失效導(dǎo)致無法增刪改怎么辦”這篇文章吧。

###建分區(qū)表
CREATE TABLE T_NEW (ID number, TIME date) PARTITION BY RANGE (TIME) 
(PARTITION P1 VALUES LESS THAN (TO_DATE('2004-7-1', 'YYYY-MM-DD')), 
PARTITION P2 VALUES LESS THAN (TO_DATE('2005-1-1', 'YYYY-MM-DD')), 
PARTITION P3 VALUES LESS THAN (TO_DATE('2005-7-1', 'YYYY-MM-DD')), 
PARTITION P4 VALUES LESS THAN (MAXVALUE));

##插入數(shù)據(jù)
insert into T_NEW values (1,to_date('2003-7-1','yyyy-mm-dd'));
insert into T_NEW values (1,to_date('2004-10-1','yyyy-mm-dd'));
insert into T_NEW values (1,to_date('2005-6-1','yyyy-mm-dd'));
commit;

##查看數(shù)據(jù)
select * from T_NEW;
select * from T_NEW partition(p1);
select * from T_NEW partition(p2);
select * from T_NEW partition(p3);
select * from T_NEW partition(p4);

##建全局唯一索引
create unique index i on T_NEW(TIME);

##刪除分區(qū)但不更新全局索引
alter table t_new drop partition p1;

##插入數(shù)據(jù)報錯
insert into T_NEW values (1,to_date('2011-6-1','yyyy-mm-dd'));  #報錯

##在線并行重建全局唯一索引
ALTER INDEX I REBUILD ONLINE PARALLEL 8;
alter index i noparallel;


##插入數(shù)據(jù)正常
insert into T_NEW values (1,to_date('2011-6-1','yyyy-mm-dd'));  #不報錯
commit;

##創(chuàng)建全局非唯一索引
drop index i;
create  index i on T_NEW(TIME);

##刪除分區(qū)但不更新全局索引
alter table t_new drop partition p2;

##插入數(shù)據(jù)不報錯
insert into T_NEW values (1,to_date('2012-6-1','yyyy-mm-dd'));  #不報錯
commit;

##創(chuàng)建全局唯一索引
drop index i;
create unique index i on T_NEW(TIME);

##刪除分區(qū)并更新全局索引
alter table t_new drop partition p3 update global indexes;

##插入數(shù)據(jù)不報錯
insert into T_NEW values (1,to_date('2013-6-1','yyyy-mm-dd')); #不報錯
commit;


結(jié)論:
1、分區(qū)表上若有【全局】【唯一】索引,如果drop分區(qū)沒有【update global indexes】 則會導(dǎo)致該索引失效,所有的增刪改(可以改非索引鍵)均會報錯。
2、并行建索引之后,需要關(guān)閉并行:alter index i noparallel;
3、創(chuàng)建索引或重建索引建議如下sql:ALTER INDEX I REBUILD ONLINE PARALLEL 8;

以上是“oracle分區(qū)表全局唯一索引失效導(dǎo)致無法增刪改怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI