Skip to content

范围分区

二级分区是对一级分区的再次分割。

说明:

虚谷数据库系统中定义二级分区即默认所有一级分区按照指定二级分区进行再分割,不能针对一级分区进行不同的二级分区划分。

语法格式

sql
range_subpartitioning_clause::=
    SUBPARTITION BY RANGE (name_list) SUBPARTITIONS (sub_part_range[,sub_part_range]...)

sub_part_range::=
    (parti_values)
|   (MAXVALUES)
|   subpart_name VALUES LESS THAN (parti_values)
|   subpart_name VALUES LESS THAN (MAXVALUES)

参数说明

  • SUBPARTITION BY RANGE:关键字,用于指定使用范围子分区。
  • name_list:一个或多个列的列表,用于二级分区的列。
  • SUBPARTITIONS:关键字,用于指定子分区列表。
  • sub_part_range:每个子分区的定义。格式与一级子分区的范围分区一致。

示例

创建一个以city为一级列表分区,以id为二级范围子分区的分区表。

sql
CREATE TABLE test_part_ran (
    id INT,
    name VARCHAR,
    city VARCHAR,
    addr VARCHAR
)
PARTITION BY LIST (city) PARTITIONS (
    part1 VALUES ('成都'),
    part2 VALUES ('重庆'),
    part3 VALUES ('北京'),
    part4 VALUES (OTHERVALUES)
)
SUBPARTITION BY RANGE (id) SUBPARTITIONS (
    partitionsub_1 VALUES LESS THAN (1),
    partitionsub_2 VALUES LESS THAN (10),
    partitionsub_3 VALUES LESS THAN (23),
    partitionsub_4 VALUES LESS THAN (MAXVALUES)
);