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

KEY-RANGE

语法

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

CREATE TABLE [ schema. ]table_name
 table_definition
   PARTITION BY [LINEAR] KEY (column_list)
   SUBPARTITION BY RANGE {(expr) | COLUMNS(column_list)}
   (partition_definition [, partition_definition] ...);

其中,partition_definition为:

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

subpartition_definition为:

SUBPARTITION subpartition_name
   VALUES LESS THAN {value | value_list | MAXVALUE}
表1 参数说明

参数名称

描述

table_name

要创建的表名称。

expr

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

column_list

RANGE COLUMNS的情况下使用,分区字段列表,不支持表达式。

value

分区边界值。

value_list

LIST COLUMNS的情况下使用,多个字段的边界值。

MAXVALUE

最大值。

partition_name

subpartition_name

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

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

使用示例

KEY-RANGE类型的使用示例

CREATE TABLE tbl_key_range
(
    col1 INT,
    col2 INT,
    col3 varchar(20),
    col4 DATE
)
PARTITION BY KEY(col1)
    SUBPARTITION BY RANGE COLUMNS(col4)
(
  PARTITION  p0(
    SUBPARTITION p0_q1_2023 VALUES LESS THAN('2023-04-01'),
    SUBPARTITION p0_q2_2023 VALUES LESS THAN('2023-07-01'),
    SUBPARTITION p0_q3_2023 VALUES LESS THAN('2023-10-01'),
    SUBPARTITION p0_q4_2023 VALUES LESS THAN('2024-01-01')
  ),
  PARTITION  p1(
    SUBPARTITION p1_q1_2023 VALUES LESS THAN('2023-04-01'),
    SUBPARTITION p1_q2_2023 VALUES LESS THAN('2023-07-01'),
    SUBPARTITION p1_q3_2023 VALUES LESS THAN('2023-10-01'),
    SUBPARTITION p1_q4_2023 VALUES LESS THAN('2024-01-01')
    ),
  PARTITION  p2(
    SUBPARTITION p2_q1_2023 VALUES LESS THAN('2023-04-01'),
    SUBPARTITION p2_q2_2023 VALUES LESS THAN('2023-07-01'),
    SUBPARTITION p2_q3_2023 VALUES LESS THAN('2023-10-01'),
    SUBPARTITION p2_q4_2023 VALUES LESS THAN('2024-01-01')
  )
);