HASH-RANGE

本文档介绍了创建HASH-RANGE分区表的方法。

语法

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

CREATE TABLE [ schema. ]table_name
 table_definition
   PARTITION BY [LINEAR] HASH(expr)
   SUBPARTITION BY RANGE (expr)
   (partition_definition [, partition_definition] ...)

其中,partition_definition为:

 PARTITION partition_name
        (subpartition_definition [, subpartition_definition] ...)

subpartition_definition为:

SUBPARTITION subpartition_name
             VALUES LESS THAN {value | MAXVALUE}

参数

参数名称

参数说明

table_name

要创建的表名称。

expr

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

value

分区边界值。

MAXVALUE

最大值。

partition_name

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

subpartition_name

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

示例

HASH-RANGE类型的使用示例:

CREATE TABLE sales_hash_range
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY HASH(dept_no)
SUBPARTITION BY RANGE(part_no)
(
PARTITION p0 (
    SUBPARTITION s0 VALUES LESS THAN(4),
    SUBPARTITION s1 VALUES LESS THAN(7),
    SUBPARTITION s2 VALUES LESS THAN(10),
    SUBPARTITION s3 VALUES LESS THAN(13)
  ),
  PARTITION p1
  (
    SUBPARTITION s4 VALUES LESS THAN(4),
    SUBPARTITION s5 VALUES LESS THAN(7),
    SUBPARTITION s6 VALUES LESS THAN(10),
    SUBPARTITION s7 VALUES LESS THAN(13)
  ),
  PARTITION p2
  (
    SUBPARTITION s8 VALUES LESS THAN(4),
    SUBPARTITION s9 VALUES LESS THAN(7),
    SUBPARTITION s10 VALUES LESS THAN(10),
    SUBPARTITION s11 VALUES LESS THAN(13)
  )
);