HASH-RANGE
语法
创建一个或多个HASH-RANGE分区表,其中每个分区可能有一个或一个以上的子分区。
CREATE TABLE [ schema. ]table_name table_definition PARTITION BY [LINEAR] HASH(expr) 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 | valuse_list | MAXVALUE}
参数名称 |
描述 |
---|---|
table_name |
要创建的表名称。 |
expr |
分区字段表达式,目前只支持INT类型,不支持字符类型。 |
column_list |
LIST COLUMNS的情况下使用,分区字段列表,不支持表达式。 |
value |
分区边界值。 |
value_list |
LIST COLUMNS的情况下使用,多个字段的边界值。 |
MAXVALUE |
最大值。 |
partition_name subpartition_name |
分区名称,同一个表中不可重复。 子分区名称,同一个表中不可重复。 |
使用示例
HASH-RANGE类型的使用示例
CREATE TABLE tbl_hash_range ( col1 INT, col2 INT, col3 varchar(20), col4 DATE ) PARTITION BY HASH(col1) SUBPARTITION BY RANGE(col2) ( 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) ) );