更新时间:2024-12-23 GMT+08:00

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
表1 参数说明

参数名称

描述

table_name

要创建的表名称。

expr

分区字段表达式,目前只支持INT类型,不支持字符类型。

num

用于分区是HASH或者KEY类型的分区表,来指定分区个数。

sub_num

用于二级分区是HASH或者KEY类型的分区表,来指定单个分区的子分区的个数。

partition_name

分区名称,同一个表中不可重复。

subpartition_name

子分区名称, 同一个表中不可重复。

使用示例

HASH-HASH类型的使用示例
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;