本文档介绍了将分区和子分区添加到现有分区表中的方法。
语法
ALTER TABLE…ADD PARTITION命令用于将分区和子分区添加到现有的分区表中。
ALTER TABLE table_name ADD PARTITION partition_definition;
partition_definition
为:{list_partition | range_partition | hash_partition | key_partition}
其中list_partition
为:PARTITION [partition_name]
VALUES IN (value[, value]...)
[TABLESPACE tablespace_name]、
(subpartition, ...)
range_partition
为:PARTITION partition_name
VALUES LESS THAN (value[, value]...)
[TABLESPACE tablespace_name]
[(subpartition, ...)]
hash_partition
/key_partition
为:PARTITION partition_name
[TABLESPACE tablespace_name]
(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_partition
/key_subpartition
为:SUBPARTITION [subpartition_name ]
[TABLESPACE tablespace_name]
参数
参数 | 参数说明 |
---|---|
table_name | 要创建的表名称(可以采用模式限定的方式引用)。 |
partition_name | 要创建的分区名称。分区名称在所有分区和子分区中必须是唯一的,且必须遵循给对象标识符命名的惯例。 |
subpartition_name | 要创建的子分区名称。子分区名称在所有分区和子分区中必须是唯一的,且必须遵循给对象标识符命名的惯例。 |
(value[, value]...) | 使用value 来指定一个引用的文本值(或以逗号分隔的文本值列表)将表项目划分为不同的分区。每个分区规则必须至少指定一个值,但在规则中对于指定的值的数量没有上限要求。Value 可能为null 、 default (如果指定了一个list 分区的话)或 maxvalue (如果指定了一个range 分区的话)。
|
tablespace_name | 分区或子分区所属的表空间名称。 |
描述
ALTER TABLE…ADD PARTITION命令用于添加分区和子分区到现有的分区中,且这个分区必须已经进行了子分区的划分。新的分区和子分区必须与现有分区和子分区的类型相同。新分区规则必须引用和定义现有分区的分区规则中指定的相同列。
RANGE分区必须以升序的方式指定。您不能把新分区添加在RANGE分区表中现有的分区之前。
如果您没有指定表空间(包括TABLESPACE子句指定新的子分区所属的表空间), 那么子分区将创建于缺省表空间。
如果对表进行了索引设置, 那么索引将创建在新的子分区上。
示例
添加分区到
sales_range_range
分区表:ALTER TABLE sales_range_range ADD PARTITION (
PARTITION p_2015 VALUES less than (2016)
(
SUBPARTITION q1_2015 VALUES LESS THAN(4),
SUBPARTITION q2_2015 VALUES LESS THAN(7),
SUBPARTITION q3_2015 VALUES LESS THAN(10),
SUBPARTITION q4_2015 VALUES LESS THAN(13)
)
);
添加分区到
sales_list_range
分区表:ALTER TABLE sales_list_range ADD PARTITION (
PARTITION p3 VALUES in (7, 8)(
SUBPARTITION q1_2015 VALUES LESS THAN(4),
SUBPARTITION q2_2015 VALUES LESS THAN(7),
SUBPARTITION q3_2015 VALUES LESS THAN(10),
SUBPARTITION q4_2015 VALUES LESS THAN(13)
)
);
添加分区到
sales_hash_hash
分区表:ALTER TABLE sales_hash_hash ADD PARTITION (
PARTITION m3(
SUBPARTITION d6,
SUBPARTITION d7
)
);
添加分区到
sales_key_key
分区表:ALTER TABLE sales_key_key ADD PARTITION (
PARTITION m3(
SUBPARTITION d6,
SUBPARTITION d7
)
);