本文档介绍了创建HASH-HASH分区表的方法。
语法
创建一个或多个HASH-HASH分区表,其中每个分区可能有一个或一个以上的子分区:
CREATE TABLE [ schema. ]table_name
table_definition
PARTITION BY [LINEAR] HASH(expr) [PARTITIONS num]
SUBPARTITION BY [LINEAR] HASH(expr) [SUBPARTITIONS sub_num]
[partition_definition [, partition_definition] ...];
其中,partition_definition
为: PARTITION partition_name
(subpartition_definition [, subpartition_definition] ...)
其中,subpartition_definition
为:SUBPARTITION subpartition_name
参数
参数名称 | 参数说明 |
---|---|
table_name | 要创建的表名称. |
expr | 分区字段表达式,目前只支持INT类型,不支持字符类型。 |
num | 用于分区是HASH或者KEY类型的分区表,来指定分区个数。 |
sub_num | 用于二级分区是HASH或者KEY类型的分区表,来指定单个分区的子分区的个数。 |
partition_name | 分区名称,同一个表中不可重复。 |
subpartition_name | 子分区名称,同一个表中不可重复。 |
示例
HASH-HASH类型的使用示例:
CREATE TABLE sales_hash_hash
(
dept_no INT,
part_no INT,
country varchar(20),
date DATE,
amount INT
)
PARTITION BY HASH(month(date))
SUBPARTITION BY HASH(TO_DAYS(date)) (
PARTITION m0 (
SUBPARTITION d0,
SUBPARTITION d1
),
PARTITION m1 (
SUBPARTITION d2,
SUBPARTITION d3
),
PARTITION m2 (
SUBPARTITION d4,
SUBPARTITION d5
)
);