全面學習分割槽表及分割槽索引(12)--修改list表分割槽
對於已存在的list表分割槽修改包含兩類操作:新增value值和刪除value值,下面分別介紹:
修改list分割槽--Add Values
從標題即可得知,此命令僅應用於list分割槽或list子分割槽,語法也非常簡單:
Alter table tbname modify partition/subpartition ptname add values (v1,v2....vn);
舉個例子:
JSSWEB> select partition_name,high_value from user_tab_partitions
2 where table_name='T_PARTITION_LIST';
PARTITION_NAME HIGH_VALUE
-------------------- --------------------------------------------------
T_LIST_P1 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
T_LIST_P2 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 11, 12, 13
, 14, 15, 16, 17, 18, 19, 20
T_LIST_PD default
JSSWEB> alter table t_partition_list modify partition t_list_p1 add values (31,33);
表已更改。
JSSWEB> select partition_name,high_value from user_tab_partitions
2 where table_name='T_PARTITION_LIST';
PARTITION_NAME HIGH_VALUE
-------------------- --------------------------------------------------
T_LIST_P1 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 31, 33
T_LIST_P2 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 11, 12, 13
, 14, 15, 16, 17, 18, 19, 20
T_LIST_PD default
唯一的限制是注意要新增的新value值不能存在於當前任何分割槽中,並且當前表也不能存在記錄值為新值的記錄,特別是當你建立了default分割槽的時候,有必要先檢查一下當前表不存在要新增的值,不然命令執行會出錯,例如:
JSSWEB> insert into t_partition_list values (32,'a');
已建立 1 行。
JSSWEB> alter table t_partition_list modify partition t_list_p1 add values (32);
alter table t_partition_list modify partition t_list_p1 add values (32)
*
第 1 行出現錯誤:
ORA-14324: 所要新增的值已存在於 DEFAULT 分割槽之中
提示,增加新的列表值不會影響到表中原有的記錄,因此不會對索引造成影響。
修改list分割槽--Drop Values
與上類似,也是隻能應用於list分割槽,不過功能相反,該命令是用來刪除指定分割槽的value值,語法如下:
Alter table tbname modify partition/subpartition ptname drop values (v1,v2....vn);
同樣在刪除list分割槽value列值的時候,也必須確認當前分割槽存在指定的value值,但是沒有任何應用該值的記錄,有點兒饒是吧,腦袋多轉幾圈就好了。
舉個例子:
JSSWEB> alter table t_partition_list modify partition t_list_p1 drop values (31);
表已更改。
成功執行了是吧,接著來看
JSSWEB> alter table t_partition_list modify partition t_list_p1 drop values (31);
alter table t_partition_list modify partition t_list_p1 drop values (31)
*
第 1 行出現錯誤:
ORA-14313: 值 31 不在分割槽 T_LIST_P1 中
出錯了吧,這是其中的一種錯誤情形,即前面說的,要確保當前分割槽中存在指定的value值,再往下看
JSSWEB> alter table t_partition_list modify partition t_list_p1 add values (31);
表已更改。
JSSWEB> insert into t_partition_list values (31,'b');
已建立 1 行。
JSSWEB> alter table t_partition_list modify partition t_list_p1 drop values (31);
alter table t_partition_list modify partition t_list_p1 drop values (31)
*
第 1 行出現錯誤:
ORA-14518: 分割槽包含的某些行對應於已刪除的值
這是另外的一種錯誤情形,即要確保當前分割槽的記錄中,沒有應用了指定value值的記錄。
=====================================
檢視前面的連載:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-302667/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 全面學習分割槽表及分割槽索引(13)--分隔表分割槽索引
- 全面學習分割槽表及分割槽索引(10)--交換分割槽索引
- 全面學習分割槽表及分割槽索引(9)--刪除表分割槽索引
- 全面學習分割槽表及分割槽索引(11)--合併表分割槽索引
- 全面學習分割槽表及分割槽索引(15)--修改表分割槽屬性和模板索引
- 全面學習分割槽表及分割槽索引(1)索引
- 全面學習分割槽表及分割槽索引(6)--建立range-list組合分割槽索引
- 全面學習分割槽表及分割槽索引(17)--其它索引分割槽管理操作索引
- 全面學習分割槽表及分割槽索引(8)--增加和收縮表分割槽索引
- 全面學習分割槽表及分割槽索引(16)--增加和刪除索引分割槽索引
- 全面學習分割槽表及分割槽索引(7)--怎樣管理索引
- 深入學習Oracle分割槽表及分割槽索引Oracle索引
- 深入學習分割槽表及分割槽索引(1)索引
- 全面認識oracle分割槽表及分割槽索引Oracle索引
- Oracle分割槽表及分割槽索引Oracle索引
- 全面學習分割槽表及分割槽索引(7)--怎樣管理(續)索引
- 學習筆記】分割槽表和分割槽索引——新增表分割槽(二)筆記索引
- 【學習筆記】分割槽表和分割槽索引——管理索引分割槽(四)筆記索引
- 分割槽表及分割槽索引建立示例索引
- 【三思筆記】 全面學習Oracle分割槽表及分割槽索引筆記Oracle索引
- 【學習筆記】分割槽表和分割槽索引——分割槽表的其他管理(三)筆記索引
- 深入學習分割槽表及分割槽索引(5)--建立range-hash組合分割槽(續)索引
- 簡單ORACLE分割槽表、分割槽索引Oracle索引
- rebuild分割槽表分割槽索引的方法Rebuild索引
- 全面學習分割槽表及分割槽索引(14)--截斷、移動和重新命名索引
- 如何查詢分割槽表的分割槽及子分割槽
- 【學習筆記】分割槽表和分割槽索引——概念部分(一)筆記索引
- 分割槽表分割槽索引查詢效率探究索引
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- oracle分割槽表和分割槽表exchangeOracle
- Oracle帶區域性分割槽索引的分割槽表刪除舊分割槽新增新分割槽Oracle索引
- MySQL 分割槽表 partition線上修改分割槽欄位MySql
- 分割槽表、分割槽索引和全域性索引部分總結索引
- INTERVAL分割槽表鎖分割槽操作
- MySQL的List分割槽表MySql
- oracle分割槽表和非分割槽表exchangeOracle
- PLSQL根據分割槽表的分割槽名批次truncate分割槽SQL
- 使用split對分割槽表再分割槽