このトピックでは、範囲-範囲パーティションテーブルを作成する方法について説明します。
構文
次のステートメントを使用して、各パーティションに1つ以上のサブパーティションを含めることができる1つ以上の範囲区分テーブルを作成します。
テーブルを作成... レンジによるパーティー {(expr) | COLUMNS(column_list)}
範囲によるサブパーティー (expr)
[(partition_definition [, partition_definition] ...)];
partition_definition
は次のとおりです。
PARTITION partition_name
{(value | value_list) | MAXVALUE} より少ない値
[(subpartition_definition [, subpartition_definition] ...)]
subpartition_definition
は次のとおりです。
SUBPARTITION subpartition_name
{value | MAXVALUE}
より少ない値パラメーター
パラメーター | 説明 |
expr | パーティションの式。 INTタイプでなければなりません。 string型はサポートされていません。 |
column_list | パーティションキー列のリスト。 それはRANGE COLUMNS() で使用されます。 式はサポートされていません。 |
value | パーティションの境界値。 |
value_list | パーティションキー列の値のリスト。 それはRANGE COLUMNS() で使用されます。 |
MAXVALUE | パーティションの最大値。 |
partition_name | パーティションの名前。 名前はテーブル内で一意である必要があります。 |
subpartition_name | サブパーティションの名前。 名前はテーブル内で一意である必要があります。 |
例
範囲と範囲のパーティション分割テーブルを作成します。
CREATE TABLE sales_range_range
(
dept_no INT、
part_no INT,
国varchar(20) 、
日付,
金額INT
)
レンジによるパーティー (dept_no)
範囲によるSUBPARTITION (part_no)
(
PARTITION p0値が (1000) 未満 (
サブパートs0の値は (100) 未満、
サブマウントs1値が (200) 未満、
分割s2値は (300) よりも少なく、
サブパートs3値がより少ない (最大値)
),
パートp1の値がより少ない (2000)
(
サブパートs4の値は (100) 未満、
サブパートs5の値は (200) 未満、
下位区分s6の値は (300) 未満、
サブパートs7値がより少ない (最大値)
),
パートp2の値がより少ない (最大値)
(
サブパートs8の値は (100) 未満、
サブパートs9の値は (200) 未満、
サブパートs10の値は (300) 未満、
サブパートs11値がより少ない (最大値)
)
);
範囲列-範囲パーティション分割テーブルを作成します。
テーブルの作成sales_range_columns_range
(
dept_no INT、
part_no INT,
国varchar(20) 、
日付,
金額INT
)
パーティーBY RANGE COLUMNS(dept_no, part_no)
範囲によるサブパート (金額)
(
パートp1の値が (1000、最大値) 未満 (
サブパートs0の値は (100) 未満、
サブマウントs1値が (200) 未満、
分割s2値は (300) よりも少なく、
サブパートs3値がより少ない (最大値)
),
パートp2の値が (2000、最大値) 未満 (
サブパートs4の値は (100) 未満、
サブパートs5の値は (200) 未満、
下位区分s6の値は (300) 未満、
サブパートs7値がより少ない (最大値)
),
PARTITION p3値未満 (MAXVALUE、MAXVALUE)(
サブパートs8の値は (100) 未満、
サブパートs9の値は (200) 未満、
サブパートs10の値は (300) 未満、
サブパートs11値がより少ない (最大値)
)
);