KEY-KEY パーティションテーブルは、プライマリパーティションおよびサブパーティションの両方に対して KEY パーティショニングを採用する複合パーティション(コンポジット・パーティション)形式であり、各プライマリパーティションが第 2 の KEY 式を用いてさらにサブパーティションに分割されます。
構文
CREATE TABLE [schema.]table_name
table_definition
PARTITION BY [LINEAR] KEY(expr) [PARTITIONS num]
SUBPARTITION BY [LINEAR] KEY(expr) [SUBPARTITIONS sub_num]
(partition_definition [, partition_definition] ...)partition_definition:
PARTITION partition_name
(subpartition_definition [, subpartition_definition] ...)subpartition_definition:
SUBPARTITION subpartition_nameパラメーター
| パラメーター | 説明 |
|---|---|
table_name | テーブル名です。 |
expr | パーティション式です。INT 型である必要があります。文字列型はサポートされていません。 |
partition_name | パーティション名です。テーブル内で一意である必要があります。 |
subpartition_name | サブパーティション名です。テーブル内で一意である必要があります。 |
例
以下の例では、dept_no をキーとして 3 つのプライマリパーティションを作成し、各パーティションを part_no をキーとして 2 つのサブパーティションに分割します。これにより、合計で 6 個のサブパーティション(3 × 2 = 6)が作成されます。
CREATE TABLE sales_key_key
(
dept_no varchar(20),
part_no varchar(20),
country varchar(20),
date DATE,
amount INT
)
PARTITION BY KEY(dept_no) PARTITIONS 3
SUBPARTITION BY KEY(part_no) SUBPARTITIONS 2;注意事項
INT 型のみ対応:
expr列は、PARTITION BY KEYおよびSUBPARTITION BY KEYのいずれにおいても INT 型である必要があります。文字列型の列はサポートされていません。名前の一意性: パーティション名およびサブパーティション名の両方が、テーブル内で一意である必要があります。
LINEAR オプション: 線形ハッシュ化アルゴリズムを使用する場合は、
LINEARキーワードを指定します。