REORGANIZE PARTITION
本文檔介紹了如何對(duì)表的部分分區(qū)、全部分區(qū)及其所有的子分區(qū)重新組織分區(qū)結(jié)構(gòu),并且不丟失數(shù)據(jù)的方法。
語(yǔ)法
ALTER TABLE…REORGANIZE PARTITION命令用于對(duì)表的部分分區(qū)、全部分區(qū)及其所有的子分區(qū)重新組織分區(qū)結(jié)構(gòu),并且不丟失數(shù)據(jù):
ALTER TABLE table_name
REORGANIZE PARTITION partition_names INTO (partition_definitions)
其中,partition_definitions
為:
{list_partition | range_partition}
list_partition
為:PARTITION partition_name VALUES IN (value[, value]...) (subpartition, ...)
range_partition
為:PARTITION partition_name VALUES LESS THAN (value[, value]...) (subpartition, ...)
其中,subpartition
為:
{list_subpartition | range_subpartition | hash_partition | key_partition}
list_subpartition
為:SUBPARTITION [subpartition_name] VALUES IN (value[, value]...) [TABLESPACE tablespace_name]
range_subpartition
為:SUBPARTITION [subpartition_name ] VALUES LESS THAN (value[, value]...) [TABLESPACE tablespace_name]
hash/key_subpartition
為:SUBPARTITION [subpartition_name ] [TABLESPACE tablespace_name]
參數(shù)
參數(shù) | 說(shuō)明 |
table_name | 表名。 |
list_partition | 需要更改的一個(gè)或多個(gè)現(xiàn)有分區(qū)的名稱列表,以逗號(hào)分隔。 |
partition_definitions | 以逗號(hào)分隔的新分區(qū)定義列表。 |
partition_name | 需要?jiǎng)?chuàng)建的分區(qū)名稱。 說(shuō)明 分區(qū)名稱在所有分區(qū)和子分區(qū)中必須是唯一的,且必須遵循給對(duì)象標(biāo)識(shí)符命名的慣例。 |
subpartition_name | 需要?jiǎng)?chuàng)建的子分區(qū)名稱。 說(shuō)明 子分區(qū)名稱在所有分區(qū)和子分區(qū)中必須是唯一的,且必須遵循給對(duì)象標(biāo)識(shí)符命名的慣例。 |
示例
拆分
sales_range_range
表分區(qū)p0
為p0_1
、p0_2
,及其對(duì)應(yīng)的所有子分區(qū):ALTER TABLE sales_range_range REORGANIZE PARTITION p0 INTO ( PARTITION p0_1 VALUES LESS THAN (500)( SUBPARTITION q1_2021_1 VALUES LESS THAN(200), SUBPARTITION q2_2021_1 VALUES LESS THAN(300), SUBPARTITION q3_2021_1 VALUES LESS THAN(400), SUBPARTITION q4_2021_1 VALUES LESS THAN(500) ), PARTITION p0_2 VALUES LESS THAN (1000)( SUBPARTITION q1_2021_2 VALUES LESS THAN(600), SUBPARTITION q2_2021_2 VALUES LESS THAN(700), SUBPARTITION q3_2021_2 VALUES LESS THAN(800), SUBPARTITION q4_2021_2 VALUES LESS THAN(1000) ) );
拆分
sales_range_hash
表分區(qū)p1為p1_1
、p1_2
,及其對(duì)應(yīng)的所有子分區(qū):ALTER TABLE sales_range_hash REORGANIZE PARTITION p1 INTO ( PARTITION p1_1 VALUES LESS THAN ('2022-12-01')( SUBPARTITION s0_1 VALUES LESS THAN ('2022-12-05'), SUBPARTITION s1_1 VALUES LESS THAN ('2022-12-10'), SUBPARTITION s2_1 VALUES LESS THAN ('2022-12-15') ), PARTITION p1_2 VALUES LESS THAN ('2023-01-01')( SUBPARTITION s0_2 VALUES LESS THAN ('2022-12-20'), SUBPARTITION s1_2 VALUES LESS THAN ('2022-12-25'), SUBPARTITION s2_2 VALUES LESS THAN ('2022-12-30') ) );
修改3個(gè)分區(qū)
p0
、p1
、p2
為q1
、q2
和q3
:ALTER TABLE sales_list_hash REORGANIZE PARTITION p0,p1,p2 INTO ( PARTITION q1 VALUES in (1,2)( SUBPARTITION s0, SUBPARTITION s1 ), PARTITION q2 VALUES in (3,4)( SUBPARTITION s3, SUBPARTITION s4 ), PARTITION q3 VALUES in (5,6)( SUBPARTITION s5, SUBPARTITION s6 ) );