首批通过分布式安全可靠测评,为关键业务系统打造
创建表
更新时间:2026-04-14 15:40:37
本文为您介绍迁移 MySQL 数据库的数据至 OceanBase 社区版时,CREATE TABLE DDL 的同步范围。
语法总览
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
| 语法 | 描述 |
|---|---|
create_definition |
支持 创建列 和 创建索引或约束。 |
table_options |
详情请参见本文《table options》模块的内容。 |
partition_options |
详情请参见 创建分区。 |
创建表时,支持
IF NOT EXISTS关键字和LIKE选项。示例如下:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_tbl_name | (LIKE old_tbl_name) }创建表时,不支持创建临时表(
TEMPORARY关键字会被忽略)。创建表时,不支持创建基于查询的表:
create table as select,会输出空字符串。
table options
支持指定表级别 COMMENT。
支持指定
CHARACTER SET。其它 table option 均不支持解析,会被忽略。
table options 的详细定义如下:
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 社区版本身的限制,如果存在以下场景,同步的 DDL 被成功转换后,执行到 OceanBase 社区版可能会报错。
OceanBase 社区版支持的字符集有限,详情请参见 字符集。
请勿使用 latin1 等不支持的字符集。如果强行指定 OceanBase 社区版不支持的字符集,DDL 同步时不会将该字符集进行转换,导致执行至目标数据库时报错。