本文档介绍了创建RANGE-LIST分区表的方法。
语法
创建一个或多个RANGE-LIST分区表,其中每个分区可能有一个或一个以上的子分区:
CREATE TABLE ... PARTITION BY RANGE {(expr) | COLUMNS(column_list)}
SUBPARTITION BY LIST(expr)
[(partition_definition [, partition_definition] ...)];
其中,partition_definition
为:
PARTITION partition_name
VALUES LESS THAN {(value | value_list) | MAXVALUE}
[(subpartition_definition [, subpartition_definition] ...)]
其中,subpartition_definition
为:
SUBPARTITION subpartition_name
VALUES IN (value_list2)
参数
参数名称 | 参数说明 |
expr | 分区字段表达式,目前只支持INT类型,不支持字符类型。 |
column_list | RANGE COLUMNS的情况下使用,分区字段列表,不支持表达式。 |
value | 分区边界值。 |
value_list | RANGE COLUMNS的情况下使用,多个字段的边界值。 |
value_list2 | 字段的值。 |
MAXVALUE | 最大值。 |
partition_name | 分区名称,同一个表中不可重复。 |
subpartition_name | 子分区名称, 同一个表中不可重复。 |
示例
RANGE-LIST类型的使用示例:
CREATE TABLE sales_range_list
(
dept_no INT,
part_no INT,
country varchar(20),
date DATE,
amount INT
)
PARTITION BY RANGE(amount)
SUBPARTITION BY LIST(dept_no)
(
PARTITION m1 VALUES LESS THAN(1000) (
SUBPARTITION p0 VALUES in (1, 2),
SUBPARTITION p1 VALUES in (3, 4),
SUBPARTITION p2 VALUES in (5, 6)
),
PARTITION m2 VALUES LESS THAN(2000) (
SUBPARTITION p3 VALUES in (1, 2),
SUBPARTITION p4 VALUES in (3, 4),
SUBPARTITION p5 VALUES in (5, 6)
),
PARTITION m3 VALUES LESS THAN(MAXVALUE) (
SUBPARTITION p6 VALUES in (1, 2),
SUBPARTITION p7 VALUES in (3, 4),
SUBPARTITION p8 VALUES in (5, 6)
)
);
RANGE COLUMNS-LIST类型的使用示例:
CREATE TABLE sales_range_columns_list
(
dept_no INT,
part_no INT,
country varchar(20),
date DATE,
amount INT
)
PARTITION BY RANGE COLUMNS(date)
SUBPARTITION BY LIST(dept_no)
(
PARTITION dp1 VALUES LESS THAN('2023-01-01')(
SUBPARTITION p0 VALUES in (1, 2),
SUBPARTITION p1 VALUES in (3, 4),
SUBPARTITION p2 VALUES in (5, 6)
),
PARTITION dp2 VALUES LESS THAN('2024-01-01')(
SUBPARTITION p3 VALUES in (1, 2),
SUBPARTITION p4 VALUES in (3, 4),
SUBPARTITION p5 VALUES in (5, 6)
),
PARTITION dp3 VALUES LESS THAN('2025-01-01')(
SUBPARTITION p6 VALUES in (1, 2),
SUBPARTITION p7 VALUES in (3, 4),
SUBPARTITION p8 VALUES in (5, 6)
)
);