本文檔介紹了建立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)
)
);