本文为您介绍不同类型的数据迁移或数据同步任务对表和索引相关的 DDL 语句的支持情况。
注意事项
本文 DDL 同步的支持说明,受限于 DDL 语句的复杂性未覆盖所有细节场景,例如
ALTER TABLE ADD COLUMN
的所有选项。如果存在不支持的现象,请根据产品页面提示或联系技术支持人员。本文 DDL 同步支持说明中的 DDL 语句,仅作为 DDL 示例,具体语法受不同数据库支持影响,略有差异,请根据不同数据库实际语法评估支持的 DDL 语句。
本文 DDL 同步支持说明中的表相关的
CREATE
DDL,需要以 匹配规则 的方式选择对象,并且CREATE
的表名必须包含在匹配规则的 迁移对象规则 内,相关 DDL 才会同步至目标端。本文 DDL 同步支持说明中的表相关的
RENAME
DDL,需要以 匹配规则 的方式选择对象,并且RENAME
后的表名必须包含在匹配规则的 迁移对象规则 内,相关 DDL 才会同步至目标端。本文 DDL 同步支持说明中索引相关的 DDL,索引所在的表对象需要在 迁移对象规则 内,相关的 DDL 才会同步至目标端。
数据迁移任务中反向增量的 DDL,请以本文表格中“目标端->源端”的支持说明为准。例如,源端 MySQL & 目标端 OB_MySQL,反向增量的 DDL 请参考 OB_MySQL-> MySQL 的支持说明。
MySQL -> OB_MySQL
迁移 MySQL 数据库的数据至 OceanBase 数据库 MySQL 租户时,DDL 同步的支持情况如下。更多详情请参见 MySQL 数据库至 OceanBase 数据库 MySQL 租户的 DDL 同步。
对象类型 | DDL 类型 | DDL 语句 | 是否支持 |
表 | CREATE | CREATE TABLE A | 支持 |
CREATE TABLE A LIKE B | 支持 | ||
CREATE TABLE IF NOT EXISTS A | 支持 | ||
CREATE TABLE AS SELECT | 不支持 | ||
ALTER | ALTER TABLE A RENAME B | 支持 | |
ALTER TABLE A ADD COLUMN B | 支持 | ||
ALTER TABLE A DROP COLUMN B | 支持 | ||
ALTER TABLE A ALTER COLUMN SET DEFAULT | 支持 | ||
ALTER TABLE A ALTER COLUMN DROP DEFAULT | 支持 | ||
ALTER TABLE A CHANGE COLUMN | 支持 | ||
ALTER TABLE A MODIFY COLUMN | 支持 | ||
ALTER TABLE A ADD INDEX/KEY B | 支持 | ||
ALTER TABLE A DROP INDEX/KEY B | 支持 | ||
ALTER TABLE A ADD FULLTEXT INDEX/KEY B | 不支持 | ||
ALTER TABLE A ADD UNIQUE INDEX/KEY B | 支持 | ||
ALTER TABLE A ADD CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP CONSTRAINT B | 不支持 | ||
ALTER TABLE A DROP PRIMARY KEY | 支持 说明 仅目标端 OceanBase 数据库 V4.0.0 及之后版本支持 | ||
ALTER TABLE A ADD PARTITION B | 支持 | ||
ALTER TABLE A DROP PARTITION B | 支持 | ||
ALTER TABLE A TRUNCATE PARTITION B | 支持 | ||
ALTER TABLE A PARTITION BY... | 支持 | ||
DROP | DROP TABLE A | 支持 | |
RENAME | RENAME TABLE A TO B | 支持 | |
TRUNCATE | TRUNCATE TABLE A | 支持 | |
索引 | CREATE | CREATE INDEX A ON B(C) | 支持 |
CREATE UNIQUE INDEX A ON B(C) | 支持 | ||
DROP | DROP INDEX A ON B | 支持 |
OB_MySQL-> MySQL
迁移 OceanBase 数据库 MySQL 租户的数据至 MySQL 数据库时,DDL 同步的支持情况如下。更多详情请参见 OceanBase 数据库 MySQL 租户至 MySQL 数据库的 DDL 同步。
对象类型 | DDL 类型 | DDL 语句 | 是否支持 |
表 | CREATE | CREATE TABLE A | 支持 |
CREATE TABLE A LIKE B | 支持 | ||
CREATE TABLE IF NOT EXISTS A | 支持 | ||
CREATE TABLE AS SELECT | 不支持 | ||
ALTER | ALTER TABLE A RENAME B | 支持 | |
ALTER TABLE A ADD COLUMN B | 支持 | ||
ALTER TABLE A DROP COLUMN B | 支持 | ||
ALTER TABLE A ALTER COLUMN SET DEFAULT | 支持 | ||
ALTER TABLE A ALTER COLUMN DROP DEFAULT | 支持 | ||
ALTER TABLE A CHANGE COLUMN | 支持 | ||
ALTER TABLE A MODIFY COLUMN | 支持 | ||
ALTER TABLE A ADD INDEX/KEY B | 支持 | ||
ALTER TABLE A DROP INDEX/KEY B | 支持 | ||
ALTER TABLE A ADD FULLTEXT INDEX/KEY B | 不支持 | ||
ALTER TABLE A ADD UNIQUE INDEX/KEY B | 支持 | ||
ALTER TABLE A ADD CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP CONSTRAINT B | 不支持 | ||
ALTER TABLE A DROP PRIMARY KEY | 支持 说明 仅源端 OceanBase 数据库 V4.0.0 及之后版本支持 | ||
ALTER TABLE A ADD PARTITION B | 支持 | ||
ALTER TABLE A DROP PARTITION B | 支持 | ||
ALTER TABLE A TRUNCATE PARTITION B | 支持 | ||
ALTER TABLE A PARTITION BY... | 支持 | ||
DROP | DROP TABLE A | 支持 | |
RENAME | RENAME TABLE A TO B | 支持 | |
TRUNCATE | TRUNCATE TABLE A | 支持 | |
索引 | CREATE | CREATE INDEX A ON B(C) | 支持 |
CREATE UNIQUE INDEX A ON B(C) | 支持 | ||
DROP | DROP INDEX A ON B | 支持 |
OB_MySQL -> OB_MySQL
迁移 OceanBase 数据库 MySQL 租户的数据至 OceanBase 数据库 MySQL 租户时,DDL 同步的支持情况如下。更多详情请参见 OceanBase 数据库 MySQL 租户之间的 DDL 同步。
对象类型 | DDL 类型 | DDL 语句 | 是否支持 |
表 | CREATE | CREATE TABLE A | 支持 |
CREATE TABLE A LIKE B | 支持 | ||
CREATE TABLE IF NOT EXISTS A | 支持 | ||
CREATE TABLE AS SELECT | 不支持 | ||
ALTER | ALTER TABLE A RENAME B | 支持 | |
ALTER TABLE A ADD COLUMN B | 支持 | ||
ALTER TABLE A DROP COLUMN B | 支持 | ||
ALTER TABLE A ALTER COLUMN SET DEFAULT | 支持 | ||
ALTER TABLE A ALTER COLUMN DROP DEFAULT | 支持 | ||
ALTER TABLE A CHANGE COLUMN | 支持 | ||
ALTER TABLE A MODIFY COLUMN | 支持 | ||
ALTER TABLE A ADD INDEX/KEY B | 支持 | ||
ALTER TABLE A DROP INDEX/KEY B | 支持 | ||
ALTER TABLE A ADD FULLTEXT INDEX/KEY B | 不支持 | ||
ALTER TABLE A ADD UNIQUE INDEX/KEY B | 支持 | ||
ALTER TABLE A ADD CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP CONSTRAINT B | 不支持 | ||
ALTER TABLE A DROP PRIMARY KEY | 支持 说明 仅源端和目标端 OceanBase 数据库 V4.0.0 及之后版本支持 | ||
ALTER TABLE A ADD PARTITION B | 支持 | ||
ALTER TABLE A DROP PARTITION B | 支持 | ||
ALTER TABLE A TRUNCATE PARTITION B | 支持 | ||
ALTER TABLE A PARTITION BY... | 支持 | ||
DROP | DROP TABLE A | 支持 | |
RENAME | RENAME TABLE A TO B | 支持 | |
TRUNCATE | TRUNCATE TABLE A | 支持 | |
索引 | CREATE | CREATE INDEX A ON B(C) | 支持 |
CREATE UNIQUE INDEX A ON B(C) | 支持 | ||
DROP | DROP INDEX A ON B | 支持 |
Oracle -> OB_Oracle
迁移 Oracle 数据库的数据至 OceanBase 数据库 Oracle 租户时,DDL 同步的支持情况如下。更多详情请参见 Oracle 数据库至 OceanBase 数据库 Oracle 租户的 DDL 同步。
对象类型 | DDL 类型 | DDL 语句 | 是否支持 |
表 | CREATE | CREATE TABLE A | 支持 |
CREATE TABLE A LIKE B | N/A | ||
CREATE TABLE IF NOT EXISTS A | N/A | ||
CREATE TABLE AS SELECT | 不支持 | ||
ALTER | ALTER TABLE A RENAME B | N/A | |
ALTER TABLE A ADD COLUMN B | 支持 | ||
ALTER TABLE A DROP COLUMN B | 支持 | ||
ALTER TABLE A ALTER COLUMN SET DEFAULT | 支持 | ||
ALTER TABLE A ALTER COLUMN DROP DEFAULT | 支持 | ||
ALTER TABLE A CHANGE COLUMN | 支持 | ||
ALTER TABLE A MODIFY COLUMN | 支持 | ||
ALTER TABLE A ADD INDEX/KEY B | N/A | ||
ALTER TABLE A DROP INDEX/KEY B | N/A | ||
ALTER TABLE A ADD FULLTEXT INDEX/KEY B | N/A | ||
ALTER TABLE A ADD UNIQUE INDEX/KEY B | N/A | ||
ALTER TABLE A ADD CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP PRIMARY KEY | 支持 说明 仅目标端 OceanBase 数据库 V4.0.0 及之后版本支持 | ||
ALTER TABLE A ADD PARTITION B | 支持 | ||
ALTER TABLE A DROP PARTITION B | 支持 | ||
ALTER TABLE A TRUNCATE PARTITION B | 支持 | ||
ALTER TABLE A PARTITION BY... | N/A | ||
DROP | DROP TABLE A | 支持 | |
RENAME | RENAME TABLE A TO B | 支持 | |
TRUNCATE | TRUNCATE TABLE A | 支持 | |
索引 | CREATE | CREATE INDEX A ON B(C) | 支持 |
CREATE UNIQUE INDEX A ON B(C) | 支持 | ||
DROP | DROP INDEX A ON B | 支持 |
OB_Oracle -> Oracle
迁移 OceanBase 数据库 Oracle 租户的数据至 Oracle 数据库时,DDL 同步的支持情况如下。更多详情请参见 OceanBase 数据库 Oracle 租户至 Oracle 数据库的 DDL 同步。
对象类型 | DDL 类型 | DDL 语句 | 是否支持 |
表 | CREATE | CREATE TABLE A | 支持 |
CREATE TABLE A LIKE B | N/A | ||
CREATE TABLE IF NOT EXISTS A | N/A | ||
CREATE TABLE AS SELECT | 不支持 | ||
ALTER | ALTER TABLE A RENAME B | 支持 | |
ALTER TABLE A ADD COLUMN B | 支持 | ||
ALTER TABLE A DROP COLUMN B | 支持 | ||
ALTER TABLE A ALTER COLUMN SET DEFAULT | 支持 | ||
ALTER TABLE A ALTER COLUMN DROP DEFAULT | 支持 | ||
ALTER TABLE A CHANGE COLUMN | 支持 | ||
ALTER TABLE A MODIFY COLUMN | 支持 | ||
ALTER TABLE A ADD INDEX/KEY B | N/A | ||
ALTER TABLE A DROP INDEX/KEY B | N/A | ||
ALTER TABLE A ADD FULLTEXT INDEX/KEY B | N/A | ||
ALTER TABLE A ADD UNIQUE INDEX/KEY B | N/A | ||
ALTER TABLE A ADD CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP PRIMARY KEY | 支持 说明 仅源端 OceanBase 数据库 V4.0.0 及之后版本支持 | ||
ALTER TABLE A ADD PARTITION B | 支持 | ||
ALTER TABLE A DROP PARTITION B | 支持 | ||
ALTER TABLE A TRUNCATE PARTITION B | 支持 | ||
ALTER TABLE A PARTITION BY... | N/A | ||
DROP | DROP TABLE A | 支持 | |
RENAME | RENAME TABLE A TO B | 支持 | |
TRUNCATE | TRUNCATE TABLE A | 支持 | |
索引 | CREATE | CREATE INDEX A ON B(C) | 支持 |
CREATE UNIQUE INDEX A ON B(C) | 支持 | ||
DROP | DROP INDEX A ON B | 支持 |
OB_Oracle -> OB_Oracle
迁移 OceanBase 数据库 Oracle 租户的数据至 OceanBase 数据库 Oracle 租户时,DDL 同步的支持情况如下。更多详情请参见 OceanBase 数据库 Oracle 租户之间的 DDL 同步。
对象类型 | DDL 类型 | DDL 语句 | 是否支持 |
表 | CREATE | CREATE TABLE A | 支持 |
CREATE TABLE A LIKE B | 支持 | ||
CREATE TABLE IF NOT EXISTS A | 支持 | ||
CREATE TABLE AS SELECT | 不支持 | ||
ALTER | ALTER TABLE A RENAME B | 支持 | |
ALTER TABLE A ADD COLUMN B | 支持 | ||
ALTER TABLE A DROP COLUMN B | 支持 | ||
ALTER TABLE A ALTER COLUMN SET DEFAULT | 支持 | ||
ALTER TABLE A ALTER COLUMN DROP DEFAULT | 支持 | ||
ALTER TABLE A CHANGE COLUMN | 支持 | ||
ALTER TABLE A MODIFY COLUMN | 支持 | ||
ALTER TABLE A ADD INDEX/KEY B | N/A | ||
ALTER TABLE A DROP INDEX/KEY B | N/A | ||
ALTER TABLE A ADD FULLTEXT INDEX/KEY B | N/A | ||
ALTER TABLE A ADD UNIQUE INDEX/KEY B | N/A | ||
ALTER TABLE A ADD CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP PRIMARY KEY | 支持 说明 仅源端和目标端 OceanBase 数据库 V4.0.0 及之后版本支持 | ||
ALTER TABLE A ADD PARTITION B | 支持 | ||
ALTER TABLE A DROP PARTITION B | 支持 | ||
ALTER TABLE A TRUNCATE PARTITION B | 支持 | ||
ALTER TABLE A PARTITION BY... | N/A | ||
DROP | DROP TABLE A | 支持 | |
RENAME | RENAME TABLE A TO B | 支持 | |
TRUNCATE | TRUNCATE TABLE A | 支持 | |
索引 | CREATE | CREATE INDEX A ON B(C) | 支持 |
CREATE UNIQUE INDEX A ON B(C) | 支持 | ||
DROP | DROP INDEX A ON B | 支持 |
OB_MySQL -> ADB
同步 OceanBase 数据库 MySQL 租户的数据至云原生数据仓库 AnalyticDB MySQL 版时,DDL 同步的支持情况如下。
对象类型 | DDL 类型 | DDL 语句 | 是否支持 |
表 | CREATE | CREATE TABLE A | 支持 |
CREATE TABLE A LIKE B | 支持 | ||
CREATE TABLE IF NOT EXISTS A | 支持 | ||
CREATE TABLE AS SELECT | 不支持 | ||
ALTER | ALTER TABLE A RENAME B | 支持 | |
ALTER TABLE A ADD COLUMN B | 支持 | ||
ALTER TABLE A DROP COLUMN B | 支持 | ||
ALTER TABLE A ALTER COLUMN SET DEFAULT | 支持 | ||
ALTER TABLE A ALTER COLUMN DROP DEFAULT | 支持 | ||
ALTER TABLE A CHANGE COLUMN | 支持 | ||
ALTER TABLE A MODIFY COLUMN | 支持 | ||
ALTER TABLE A ADD INDEX/KEY B | 支持 | ||
ALTER TABLE A DROP INDEX/KEY B | 不支持 | ||
ALTER TABLE A ADD FULLTEXT INDEX/KEY B | 不支持 | ||
ALTER TABLE A ADD UNIQUE INDEX/KEY B | 不支持 | ||
ALTER TABLE A ADD CONSTRAINT B | 不支持 | ||
ALTER TABLE A DROP CONSTRAINT B | 不支持 | ||
ALTER TABLE A DROP PRIMARY KEY | 不支持 | ||
ALTER TABLE A ADD PARTITION B | 支持 | ||
ALTER TABLE A DROP PARTITION B | 支持 | ||
ALTER TABLE A TRUNCATE PARTITION B | 支持 | ||
ALTER TABLE A PARTITION BY... | 支持 | ||
DROP | DROP TABLE A | 不支持 | |
RENAME | RENAME TABLE A TO B | 支持 | |
TRUNCATE | TRUNCATE TABLE A | 不支持 | |
索引 | CREATE | CREATE INDEX A ON B(C) | 不支持 |
CREATE UNIQUE INDEX A ON B(C) | 不支持 | ||
DROP | DROP INDEX A ON B | 不支持 |
OB_MySQL -> DataHub(BLOB)
同步 OceanBase 数据库 MySQL 租户的数据至 DataHub(BLOB 类型)时,DDL 同步的支持情况如下。
对象类型 | DDL 类型 | DDL 语句 | 是否支持 |
表 | ALTER | ALTER TABLE A ADD COLUMN B | 支持 |
ALTER TABLE A DROP COLUMN B | 支持 | ||
ALTER TABLE A MODIFY COLUMN B | 支持 | ||
TRUNCATE | TRUNCATE TABLE A 说明 延迟删除场景下,同一个事务中会有两条一样的 | 支持 | |
索引 | CREATE | CREATE INDEX A ON B(C) | 支持 |
CREATE UNIQUE INDEX A ON B(C) | 支持 | ||
DROP | DROP INDEX A ON B | 支持 |
OB_Oracle -> DataHub(BLOB)
同步 OceanBase 数据库 Oracle 租户的数据至 DataHub(BLOB 类型)时,DDL 同步的支持情况如下。
对象类型 | DDL 类型 | DDL 语句 | 是否支持 |
表 | ALTER | ALTER TABLE A ADD COLUMN B | 支持 |
ALTER TABLE A DROP COLUMN B | 支持 | ||
ALTER TABLE A MODIFY COLUMN B | 支持 | ||
TRUNCATE | TRUNCATE TABLE A 说明 延迟删除场景下,同一个事务中会有两条一样的 | 支持 | |
索引 | CREATE | CREATE INDEX A ON B(C) | 支持 |
CREATE UNIQUE INDEX A ON B(C) | 支持 | ||
DROP | DROP INDEX A ON B | 支持 |
OB_MySQL -> Kafka
同步 OceanBase 数据库 MySQL 租户的数据至 Kafka 时,DDL 同步的支持情况如下。
对象类型 | DDL 类型 | DDL 语句 | 是否支持 |
表 | CREATE | CREATE TABLE A | 支持 |
CREATE TABLE A LIKE B | 支持 | ||
CREATE TABLE IF NOT EXISTS A | 支持 | ||
CREATE TABLE AS SELECT | 不支持 | ||
ALTER | ALTER TABLE A RENAME B | 支持 | |
ALTER TABLE A ADD COLUMN B | 支持 | ||
ALTER TABLE A DROP COLUMN B | 支持 | ||
ALTER TABLE A ALTER COLUMN SET DEFAULT | 支持 | ||
ALTER TABLE A ALTER COLUMN DROP DEFAULT | 支持 | ||
ALTER TABLE A CHANGE COLUMN | 支持 | ||
ALTER TABLE A MODIFY COLUMN | 支持 | ||
ALTER TABLE A ADD INDEX/KEY B | 支持 | ||
ALTER TABLE A DROP INDEX/KEY B | 支持 | ||
ALTER TABLE A ADD FULLTEXT INDEX/KEY B | 不支持 | ||
ALTER TABLE A ADD UNIQUE INDEX/KEY B | 支持 | ||
ALTER TABLE A ADD CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP CONSTRAINT B | 不支持 | ||
ALTER TABLE A DROP PRIMARY KEY | 支持 说明 仅源端和目标端 OceanBase 数据库 V4.0.0 及之后版本支持 | ||
ALTER TABLE A ADD PARTITION B | 支持 | ||
ALTER TABLE A DROP PARTITION B | 支持 | ||
ALTER TABLE A TRUNCATE PARTITION B | 支持 | ||
ALTER TABLE A PARTITION BY... | 支持 | ||
DROP | DROP TABLE A | 支持 | |
RENAME | RENAME TABLE A TO B | 支持 | |
TRUNCATE | TRUNCATE TABLE A | 支持 | |
索引 | CREATE | CREATE INDEX A ON B(C) | 支持 |
CREATE UNIQUE INDEX A ON B(C) | 支持 | ||
DROP | DROP INDEX A ON B | 支持 |
OB_Oracle -> Kafka
同步 OceanBase 数据库 Oracle 租户的数据至 Kafka 时,DDL 同步的支持情况如下。
对象类型 | DDL 类型 | DDL 语句 | 是否支持 |
表 | CREATE | CREATE TABLE A | 支持 |
CREATE TABLE A LIKE B | 支持 | ||
CREATE TABLE IF NOT EXISTS A | 支持 | ||
CREATE TABLE AS SELECT | 不支持 | ||
ALTER | ALTER TABLE A RENAME B | 支持 | |
ALTER TABLE A ADD COLUMN B | 支持 | ||
ALTER TABLE A DROP COLUMN B | 支持 | ||
ALTER TABLE A ALTER COLUMN SET DEFAULT | 支持 | ||
ALTER TABLE A ALTER COLUMN DROP DEFAULT | 支持 | ||
ALTER TABLE A CHANGE COLUMN | 支持 | ||
ALTER TABLE A MODIFY COLUMN | 支持 | ||
ALTER TABLE A ADD INDEX/KEY B | N/A | ||
ALTER TABLE A DROP INDEX/KEY B | N/A | ||
ALTER TABLE A ADD FULLTEXT INDEX/KEY B | N/A | ||
ALTER TABLE A ADD UNIQUE INDEX/KEY B | N/A | ||
ALTER TABLE A ADD CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP CONSTRAINT B | 支持 | ||
ALTER TABLE A DROP PRIMARY KEY | 支持 说明 仅源端和目标端 OceanBase 数据库 V4.0.0 及之后版本支持 | ||
ALTER TABLE A ADD PARTITION B | 支持 | ||
ALTER TABLE A DROP PARTITION B | 支持 | ||
ALTER TABLE A TRUNCATE PARTITION B | 支持 | ||
ALTER TABLE A PARTITION BY... | N/A | ||
DROP | DROP TABLE A | 支持 | |
RENAME | RENAME TABLE A TO B | 支持 | |
TRUNCATE | TRUNCATE TABLE A | 支持 | |
索引 | CREATE | CREATE INDEX A ON B(C) | 支持 |
CREATE UNIQUE INDEX A ON B(C) | 支持 | ||
DROP | DROP INDEX A ON B | 支持 |