このトピックでは、MySQL データベースから OceanBase Database の MySQL テナントへのデータ移行中に、パーティションを作成するための CREATE TABLE DDL 操作でサポートされている変換範囲について説明します。
構文
partition_options:
PARTITION BY
{ [LINEAR] HASH(expr)
| [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)
| RANGE{(expr) | COLUMNS(column_list)}
| LIST{(expr) | COLUMNS(column_list)} }
[PARTITIONS num]
[SUBPARTITION BY
{ [LINEAR] HASH(expr)
| [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list) }
[SUBPARTITIONS num]
]
[(partition_definition [, partition_definition] ...)]
partition_definition:
PARTITION partition_name
[VALUES
{LESS THAN {(expr | value_list) | MAXVALUE}
|
IN (value_list)}]
[[STORAGE] ENGINE [=] engine_name]
[COMMENT [=] 'string' ]
[DATA DIRECTORY [=] 'data_dir']
[INDEX DIRECTORY [=] 'index_dir']
[MAX_ROWS [=] max_number_of_rows]
[MIN_ROWS [=] min_number_of_rows]
[TABLESPACE [=] tablespace_name]
[(subpartition_definition [, subpartition_definition] ...)]
subpartition_definition:
SUBPARTITION logical_name
[[STORAGE] ENGINE [=] engine_name]
[COMMENT [=] 'string' ]
[DATA DIRECTORY [=] 'data_dir']
[INDEX DIRECTORY [=] 'index_dir']
[MAX_ROWS [=] max_number_of_rows]
[MIN_ROWS [=] min_number_of_rows]
[TABLESPACE [=] tablespace_name]
サポートされる操作
RANGE、LIST、HASH、または KEY パーティションを作成します。
HASH または KEY サブパーティションを作成します。
RANGE、LIST、および HASH パーティションに関数パーティションキー(式または関数)または列パーティションキー(フィールド)を指定します。KEY パーティションには列パーティションキーを指定します。
PARTITIONS num オプションと SUBPARTITIONS num オプションを指定します。
サポートされない操作
LINEAR HASH または LINEAR KEY パーティションを作成します。
同期されたパーティション作成用の DDL 文にサポートされていない定義が含まれている場合、生成されるパーティション定義は空になりますが、テーブルスキーマは保持されます(パーティション定義は破棄されます)。
無視される句とオプション
同期された DDL 文で指定された場合、次の句とオプションは無視され、解決または変換されません。
ENGINE
COMMENT
DATA DIRECTORY
INDEX DIRECTORY
MAX_ROWS
MIN_ROWS
TABLESPACE
ALGORITHM (KEY パーティションの場合)
PARTITION BY KEY ALGORITHM={1 | 2} (column_list) -> PARTITION BY KEY (column_list)
制限事項
OceanBase Database の MySQL テナントの制限により、同期された DDL 文が OceanBase Database の MySQL テナントで変換および実行されるときに、次のシナリオでエラーが返される場合があります。
OceanBase Database の MySQL テナントは、特定の型のフィールドをパーティションキーとして使用することをサポートしていません。
OceanBase Database の MySQL テナントは、特定の関数または式をパーティションキーとして使用することをサポートしていません。