本文档介绍了创建LIST分区表的方法。
语法
创建LIST分区表。枚举类型分区,需要把每个分区的分区键的值枚举出来,枚举值不能重复。支持扩展类型LIST COLUMNS。
CREATE TABLE ... PARTITION BY LIST {(expr) | COLUMNS(column_list)}
(partition_definition [, partition_definition] ...);
其中partition_definition为
PARTITION partition_name
VALUES IN (value_list)
参数
参数名称 | 参数说明 |
expr | 分区字段表达式,目前只支持INT类型,不支持字符类型。 |
column_list | LIST COLUMNS类型使用,分区字段列表,不支持表达式。 |
value_list | 字段的边界值。 |
partition_name | 分区名称,同一个表中不可重复。 |
描述
LIST支持表达式,LIST表达式返回类型必须是INT类型。
LIST仅支持单列分区键。
LIST COLUMNS不支持表达式,但支持列。
LIST COLUMNS支持多列分区键。LIST COLUMNS支持多种类型的分区键,包括INT类型、字符类型、DATE类型、DATETIME等类型。
示例
LIST类型的使用示例:
CREATE TABLE sales_list
(
dept_no INT,
part_no INT,
country varchar(20),
date DATE,
amount INT
)
PARTITION BY LIST (amount)
(
PARTITION p0 VALUES in (1, 2),
PARTITION p1 VALUES in (3, 4),
PARTITION p2 VALUES in (5, 6)
);
LIST COLUMNS类型的使用示例:
CREATE TABLE sales_list_columns
(
dept_no INT,
part_no INT,
country varchar(20),
date DATE,
amount INT
)
PARTITION BY LIST COLUMNS(country)
(
PARTITION europe VALUES in ('FRANCE', 'ITALY'),
PARTITION asia VALUES in ('INDIA', 'PAKISTAN'),
PARTITION americas VALUES in ('US', 'CANADA')
);