DDL 同步范围

本文为您介绍不同类型的数据迁移或数据同步任务对表和索引相关的 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

说明

延迟删除场景下,同一个事务中会有两条一样的TRUNCATE TABLEDDL。此时,下游消费需要按照幂等方式处理。

支持

索引

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

说明

延迟删除场景下,同一个事务中会有两条一样的TRUNCATE TABLEDDL。此时,下游消费需要按照幂等方式处理。

支持

索引

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

支持