このトピックでは、MySQL データベースから OceanBase Database の MySQL テナントへのデータ移行中に、CREATE TABLE DDL 操作でサポートされる変換範囲について説明します。
構文
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]構文 | 説明 |
| 列、インデックス、または制約を作成できます。詳細については、「列を作成する」および「インデックスまたは制約を作成する」をご参照ください。 |
| 詳細については、このセクションの後の table_options をご参照ください。 |
| 詳細については、「パーティションを作成する」をご参照ください。 |
CREATE TABLE 文を使用してテーブルを作成する場合、
IF NOT EXISTSキーワードとLIKEオプションを指定できます。例:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_tbl_name | (LIKE old_tbl_name) }この文を使用して一時テーブルを作成することはできません。
TEMPORARYキーワードは無視されます。説明OceanBase Database V3.2.3 の MySQL テナントでは、一時テーブルを作成できます。
CREATE TABLE AS SELECT文を使用して、SELECT 文の結果セットに基づいてテーブルを作成することはできません。これは、このシナリオでは出力は空の文字列になるためです。
table_options
テーブルレベルのコメントを指定できます。
CHARACTER SETを指定できます。その他のテーブルオプションは解析されず、無視されます。
次のサンプルコードは、テーブルオプションについて詳しく説明しています。
table_option: {
AUTOEXTEND_SIZE [=] value
| AUTO_INCREMENT [=] value
| AVG_ROW_LENGTH [=] value
| [DEFAULT] CHARACTER SET [=] charset_name
| CHECKSUM [=] {0 | 1}
| [DEFAULT] COLLATE [=] collation_name
| COMMENT [=] 'string'
| COMPRESSION [=] {'ZLIB' | 'LZ4' | 'NONE'}
| CONNECTION [=] 'connect_string'
| {DATA | INDEX} DIRECTORY [=] 'absolute path to directory'
| DELAY_KEY_WRITE [=] {0 | 1}
| ENCRYPTION [=] {'Y' | 'N'}
| ENGINE [=] engine_name
| ENGINE_ATTRIBUTE [=] 'string'
| INSERT_METHOD [=] { NO | FIRST | LAST }
| KEY_BLOCK_SIZE [=] value
| MAX_ROWS [=] value
| MIN_ROWS [=] value
| PACK_KEYS [=] {0 | 1 | DEFAULT}
| PASSWORD [=] 'string'
| ROW_FORMAT [=] {DEFAULT | DYNAMIC | FIXED | COMPRESSED | REDUNDANT | COMPACT}
| SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
| STATS_AUTO_RECALC [=] {DEFAULT | 0 | 1}
| STATS_PERSISTENT [=] {DEFAULT | 0 | 1}
| STATS_SAMPLE_PAGES [=] value
| TABLESPACE tablespace_name [STORAGE {DISK | MEMORY}]
| UNION [=] (tbl_name[,tbl_name]...)
}
制限事項
OceanBase Database の MySQL テナントの制限により、同期された DDL 文が変換され、以下のシナリオで OceanBase Database の MySQL テナントで実行されると、エラーが返される場合があります。
OceanBase Database の MySQL テナントでは、サポートされる文字セットの数が限られています。
Latin-1 など、サポートされていない文字セットを使用しないでください。OceanBase Database の MySQL テナントにサポートされていない文字セットを強制的に指定した場合、ターゲットデータベースへの DDL 同期中にこの文字セットは変換されず、エラーが返されます。