HASH-HASH
约束与限制
- HASH类型的分区表的定义可以省略,如果指定了PARTITIONS num,默认创建num个分区定义,否则一般情况默认会创建1个分区定义。
- 对于二级分区,如果要省略分区定义,需要所有的子分区都不能给出定义,否则都要指定分区定义。
语法
创建一个或多个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 |
子分区名称, 同一个表中不可重复。 |
使用示例
CREATE TABLE tbl_hash_hash ( col1 INT, col2 INT, col3 varchar(20), col4 DATE ) PARTITION BY HASH(col1) PARTITIONS 9 SUBPARTITION BY HASH(col2) SUBPARTITIONS 3;