このトピックでは、range-hashパーティションテーブルを作成する方法について説明します。
構文
次のステートメントは、1つ以上のrange-hashパーティションテーブルを作成するために使用されます。 パーティションはRANGE [COLUMNS] タイプです。 サブパーティションはHASHまたはKEYタイプです。
CREATE TABLE [スキーマ] 。 ] table_name
table_definition
レンジによるパーティー {(expr) COLUMNS(column_list)}
SUBPARTITION BY {[LINEAR] HASH(expr) [SUBPARTITIONS number]
[LINEAR] キー [ALGORITHM={1 2}] (column_list)}
(partition_definition [, partition_definition] ...);
partition_definitionは次のとおりです。
PARTITION partition_name
{(expr value_list) MAXVALUE} より少ない値
(subpartition_definition [, subpartition_definition] ...)
subpartition_definitionは次のとおりです。
サブパーティション_名
パラメーター
パラメーター | 説明 |
expr | パーティションの式。 INTタイプである必要があります。 string型はサポートされていません。 |
column_list | パーティションキー列のリスト。 式はサポートされていません。 |
数値 | サブパーティションの数。 |
value | パーティションの境界値。 |
value_list | パーティションの境界値のリスト。 それはRANGE COLUMNS() で使用されます。 |
MAXVALUE | パーティションの最大値。 |
partition_name | パーティションの名前。 名前はテーブル内で一意である必要があります。 |
subpartition_name | サブパーティションの名前。 名前はテーブル内で一意である必要があります。 |
例
range-hashパーティションテーブルを作成します。
CREATE TABLE sales_range_hash
(
s_id varchar(20) 、
dept_no INT、
part_no INT,
国varchar(20) 、
日付,
金額INT、
主キー (s_id, date)
)
RANGE COLUMNSによるパーティー (日付)
SUBPARTITION BY KEY(s_id) SUBPARTITIONS 3
(
パートp1の値は以下 ('2023-01-01 ') 、
PARTITION p2の値は未満 ('2023-02-01 ') 、
PARTITION p3はより少ない値 ('2023-03-01 ') 、
PARTITION p4はより少ない値 ('2023-04-01 ')
);