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

HASH-KEY

约束与限制

  • KEY类型的分区表的定义可以省略,如果指定了PARTITIONS num,默认创建num个分区定义,否则一般情况默认会创建1个分区定义。
  • 对于二级分区,如果要省略分区定义,需要所有的子分区都不能给出定义,否则都要指定分区定义。

语法

创建一个或多个HASH-KEY分区表,其中每个分区可能有一个或一个以上的子分区。

CREATE TABLE [ schema. ]table_name
 table_definition
   PARTITION BY [LINEAR] HASH(expr) [PARTITIONS num]
   SUBPARTITION BY [LINEAR] KEY(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类型,不支持字符类型。

partition_name

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

subpartition_name

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

使用示例

HASH-KEY类型的使用示例
CREATE TABLE tbl_hash_key
(
    col1 INT,
    col2 INT,
    col3 varchar(20),
    col4 DATE
)
PARTITION BY HASH(col1) PARTITIONS 3
   SUBPARTITION BY KEY(col3) SUBPARTITIONS 2;