This topic introduces the support for DDL statements related to tables and indexes for different types of data migration or data synchronization tasks.
Considerations
The DDL synchronization support described in this topic is limited and does not cover all detailed scenarios due to the complexity of DDL statements, such as all options for
ALTER TABLE ADD COLUMN. If unsupported situations exist, please refer to the product page prompts or contact technical support.The DDL statements in the DDL synchronization support descriptions in this topic are only examples. The specific syntax may vary slightly depending on different databases. Please evaluate the supported DDL statements based on the actual syntax of different databases.
For table-related CREATE DDL statements in the DDL synchronization, objects need to be selected using Match by Rule, and the table name in
CREATEmust be included in the Object Migration Rules of the matching rules for the related DDL to be synchronized to the target.For table-related RENAME DDL statements in the DDL synchronization, objects need to be selected using Match by Rule, and the table name after
RENAMEmust be included in the Object Migration Rules of the matching rules for the related DDL to be synchronized to the target.For index-related DDL statements in the DDL synchronization, the table objects where the indexes are located need to be within the Object Migration Rules for the related DDL to be synchronized to the target.
MySQL -> OB_MySQL
The following table describes the DDL synchronization support when you migrate data from a MySQL database to an OceanBase database MySQL-compatible tenant. For more information, see DDL synchronization from Aurora MySQL DB clusters to MySQL-compatible tenants of OceanBase Database.
| Object Type | DDL Type | DDL Statement | Supported? |
|---|---|---|---|
| Table | CREATE | CREATE TABLE A | Yes |
| Table | CREATE | CREATE TABLE A LIKE B | Yes |
| Table | CREATE | CREATE TABLE IF NOT EXISTS A | Yes |
| Table | CREATE | CREATE TABLE AS SELECT | No |
| Table | ALTER | ALTER TABLE A RENAME B | Yes |
| Table | ALTER | ALTER TABLE A ADD COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A DROP COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN SET DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN DROP DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A CHANGE COLUMN | Yes |
| Table | ALTER | ALTER TABLE A MODIFY COLUMN | Yes |
| Table | ALTER | ALTER TABLE A ADD INDEX/KEY B | Yes |
| Table | ALTER | ALTER TABLE A DROP INDEX/KEY B | Yes |
| Table | ALTER | ALTER TABLE A ADD FULLTEXT INDEX/KEY B | No |
| Table | ALTER | ALTER TABLE A ADD UNIQUE INDEX/KEY B | Yes |
| Table | ALTER | ALTER TABLE A ADD CONSTRAINT B | Yes |
| Table | ALTER | ALTER TABLE A DROP CONSTRAINT B | No |
| Table | ALTER | ALTER TABLE A DROP PRIMARY KEY | Yes
NoteOnly supported for target OceanBase database V4.0.0 and later versions. |
| Table | ALTER | ALTER TABLE A ADD PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A DROP PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A TRUNCATE PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A PARTITION BY... | Yes |
| Table | DROP | DROP TABLE A | Yes |
| Table | RENAME | RENAME TABLE A TO B | Yes |
| Table | TRUNCATE | TRUNCATE TABLE A | Yes |
| Index | CREATE | CREATE INDEX A ON B(C) | Yes |
| Index | CREATE | CREATE UNIQUE INDEX A ON B(C) | Yes |
| Index | DROP | DROP INDEX A ON B | Yes |
OB_MySQL -> MySQL
The following table describes the DDL synchronization support when you migrate data from an OceanBase database MySQL-compatible tenant to a MySQL database. For more information, see DDL synchronization from MySQL-compatible tenants of OceanBase Database to Aurora MySQL DB clusters.
| Object Type | DDL Type | DDL Statement | Supported? |
|---|---|---|---|
| Table | CREATE | CREATE TABLE A | Yes |
| Table | CREATE | CREATE TABLE A LIKE B | Yes |
| Table | CREATE | CREATE TABLE IF NOT EXISTS A | Yes |
| Table | CREATE | CREATE TABLE AS SELECT | No |
| Table | ALTER | ALTER TABLE A RENAME B | Yes |
| Table | ALTER | ALTER TABLE A ADD COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A DROP COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN SET DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN DROP DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A CHANGE COLUMN | Yes |
| Table | ALTER | ALTER TABLE A MODIFY COLUMN | Yes |
| Table | ALTER | ALTER TABLE A ADD INDEX/KEY B | Yes |
| Table | ALTER | ALTER TABLE A DROP INDEX/KEY B | Yes |
| Table | ALTER | ALTER TABLE A ADD FULLTEXT INDEX/KEY B | No |
| Table | ALTER | ALTER TABLE A ADD UNIQUE INDEX/KEY B | Yes |
| Table | ALTER | ALTER TABLE A ADD CONSTRAINT B | Yes |
| Table | ALTER | ALTER TABLE A DROP CONSTRAINT B | No |
| Table | ALTER | ALTER TABLE A DROP PRIMARY KEY | Yes
NoteOnly supported for source OceanBase database V4.0.0 and later versions. |
| Table | ALTER | ALTER TABLE A ADD PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A DROP PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A TRUNCATE PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A PARTITION BY... | Yes |
| Table | DROP | DROP TABLE A | Yes |
| Table | RENAME | RENAME TABLE A TO B | Yes |
| Table | TRUNCATE | TRUNCATE TABLE A | Yes |
| Index | CREATE | CREATE INDEX A ON B(C) | Yes |
| Index | CREATE | CREATE UNIQUE INDEX A ON B(C) | Yes |
| Index | DROP | DROP INDEX A ON B | Yes |
OB_MySQL -> OB_MySQL
The following table describes the DDL synchronization support when you migrate data from an OceanBase database MySQL-compatible tenant to another OceanBase database MySQL-compatible tenant. For more information, see DDL synchronization between MySQL-compatible tenants of OceanBase Database.
| Object Type | DDL Type | DDL Statement | Supported? |
|---|---|---|---|
| Table | CREATE | CREATE TABLE A | Yes |
| Table | CREATE | CREATE TABLE A LIKE B | Yes |
| Table | CREATE | CREATE TABLE IF NOT EXISTS A | Yes |
| Table | CREATE | CREATE TABLE AS SELECT | No |
| Table | ALTER | ALTER TABLE A RENAME B | Yes |
| Table | ALTER | ALTER TABLE A ADD COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A DROP COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN SET DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN DROP DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A CHANGE COLUMN | Yes |
| Table | ALTER | ALTER TABLE A MODIFY COLUMN | Yes |
| Table | ALTER | ALTER TABLE A ADD INDEX/KEY B | Yes |
| Table | ALTER | ALTER TABLE A DROP INDEX/KEY B | Yes |
| Table | ALTER | ALTER TABLE A ADD FULLTEXT INDEX/KEY B | No |
| Table | ALTER | ALTER TABLE A ADD UNIQUE INDEX/KEY B | Yes |
| Table | ALTER | ALTER TABLE A ADD CONSTRAINT B | Yes |
| Table | ALTER | ALTER TABLE A DROP CONSTRAINT B | No |
| Table | ALTER | ALTER TABLE A DROP PRIMARY KEY | Yes
NoteOnly supported for source and target OceanBase database V4.0.0 and later versions. |
| Table | ALTER | ALTER TABLE A ADD PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A DROP PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A TRUNCATE PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A PARTITION BY... | Yes |
| Table | DROP | DROP TABLE A | Yes |
| Table | RENAME | RENAME TABLE A TO B | Yes |
| Table | TRUNCATE | TRUNCATE TABLE A | Yes |
| Index | CREATE | CREATE INDEX A ON B(C) | Yes |
| Index | CREATE | CREATE UNIQUE INDEX A ON B(C) | Yes |
| Index | DROP | DROP INDEX A ON B | Yes |
OB_Oracle -> OB_Oracle
The following table describes the DDL synchronization support when you migrate data from an OceanBase database Oracle-compatible tenant to another OceanBase database Oracle-compatible tenant. For more information, see DDL synchronization between Oracle-compatible tenants of OceanBase Database.
| Object Type | DDL Type | DDL Statement | Supported? |
|---|---|---|---|
| Table | CREATE | CREATE TABLE A | Yes |
| Table | CREATE | CREATE TABLE A LIKE B | Yes |
| Table | CREATE | CREATE TABLE IF NOT EXISTS A | Yes |
| Table | CREATE | CREATE TABLE AS SELECT | No |
| Table | ALTER | ALTER TABLE A RENAME B | Yes |
| Table | ALTER | ALTER TABLE A ADD COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A DROP COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN SET DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN DROP DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A CHANGE COLUMN | Yes |
| Table | ALTER | ALTER TABLE A MODIFY COLUMN | Yes |
| Table | ALTER | ALTER TABLE A ADD INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A DROP INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A ADD FULLTEXT INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A ADD UNIQUE INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A ADD CONSTRAINT B | Yes |
| Table | ALTER | ALTER TABLE A DROP CONSTRAINT B | Yes |
| Table | ALTER | ALTER TABLE A DROP PRIMARY KEY | Yes
NoteOnly supported for source and target OceanBase database V4.0.0 and later versions. |
| Table | ALTER | ALTER TABLE A ADD PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A DROP PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A TRUNCATE PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A PARTITION BY... | N/A |
| Table | DROP | DROP TABLE A | Yes |
| Table | RENAME | RENAME TABLE A TO B | Yes |
| Table | TRUNCATE | TRUNCATE TABLE A | Yes |
| Index | CREATE | CREATE INDEX A ON B(C) | Yes |
| Index | CREATE | CREATE UNIQUE INDEX A ON B(C) | Yes |
| Index | DROP | DROP INDEX A ON B | Yes |
Oracle -> OB_Oracle
The following table describes the DDL synchronization support when you migrate data from an Oracle database to an OceanBase database Oracle-compatible tenant. For more information, see DDL synchronization from Oracle databases to Oracle-compatible tenants of OceanBase Database.
| Object Type | DDL Type | DDL Statement | Supported? |
|---|---|---|---|
| Table | CREATE | CREATE TABLE A | Yes |
| Table | CREATE | CREATE TABLE A LIKE B | N/A |
| Table | CREATE | CREATE TABLE IF NOT EXISTS A | N/A |
| Table | CREATE | CREATE TABLE AS SELECT | No |
| Table | ALTER | ALTER TABLE A RENAME B | N/A |
| Table | ALTER | ALTER TABLE A ADD COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A DROP COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN SET DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN DROP DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A CHANGE COLUMN | Yes |
| Table | ALTER | ALTER TABLE A MODIFY COLUMN | Yes |
| Table | ALTER | ALTER TABLE A ADD INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A DROP INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A ADD FULLTEXT INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A ADD UNIQUE INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A ADD CONSTRAINT B | Yes |
| Table | ALTER | ALTER TABLE A DROP CONSTRAINT B | Yes |
| Table | ALTER | ALTER TABLE A DROP PRIMARY KEY | Yes
NoteOnly supported for target OceanBase database V4.0.0 and later versions. |
| Table | ALTER | ALTER TABLE A ADD PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A DROP PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A TRUNCATE PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A PARTITION BY... | N/A |
| Table | DROP | DROP TABLE A | Yes |
| Table | RENAME | RENAME TABLE A TO B | Yes |
| Table | TRUNCATE | TRUNCATE TABLE A | Yes |
| Index | CREATE | CREATE INDEX A ON B(C) | Yes |
| Index | CREATE | CREATE UNIQUE INDEX A ON B(C) | Yes |
| Index | DROP | DROP INDEX A ON B | Yes |
OB_Oracle -> Oracle
The following table describes the DDL synchronization support when you migrate data from an OceanBase database Oracle-compatible tenant to an Oracle database. For more information, see DDL synchronization from Oracle-compatible tenants of OceanBase Database to Oracle databases.
| Object Type | DDL Type | DDL Statement | Supported? |
|---|---|---|---|
| Table | CREATE | CREATE TABLE A | Yes |
| Table | CREATE | CREATE TABLE A LIKE B | N/A |
| Table | CREATE | CREATE TABLE IF NOT EXISTS A | N/A |
| Table | CREATE | CREATE TABLE AS SELECT | No |
| Table | ALTER | ALTER TABLE A RENAME B | Yes |
| Table | ALTER | ALTER TABLE A ADD COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A DROP COLUMN B | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN SET DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A ALTER COLUMN DROP DEFAULT | Yes |
| Table | ALTER | ALTER TABLE A CHANGE COLUMN | Yes |
| Table | ALTER | ALTER TABLE A MODIFY COLUMN | Yes |
| Table | ALTER | ALTER TABLE A ADD INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A DROP INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A ADD FULLTEXT INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A ADD UNIQUE INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A ADD CONSTRAINT B | Yes |
| Table | ALTER | ALTER TABLE A DROP CONSTRAINT B | Yes |
| Table | ALTER | ALTER TABLE A DROP PRIMARY KEY | Yes
NoteOnly supported for target OceanBase database V4.0.0 and later versions. |
| Table | ALTER | ALTER TABLE A ADD PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A DROP PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A TRUNCATE PARTITION B | Yes |
| Table | ALTER | ALTER TABLE A PARTITION BY... | N/A |
| Table | DROP | DROP TABLE A | Yes |
| Table | RENAME | RENAME TABLE A TO B | Yes |
| Table | TRUNCATE | TRUNCATE TABLE A | Yes |
| Index | CREATE | CREATE INDEX A ON B(C) | Yes |
| Index | CREATE | CREATE UNIQUE INDEX A ON B(C) | Yes |
| Index | DROP | DROP INDEX A ON B | Yes |
OB_MySQL -> Kafka
The following table describes the DDL synchronization support when you migrate data from the MySQL compatible mode of OceanBase Database to Kafka. For more information, see DDL synchronization from OceanBase databases to Kafka instances.
| Object Type | DDL Type | DDL Statement | Supported? |
|---|---|---|---|
| Table | CREATE | CREATE TABLE A | Supported |
| Table | CREATE | CREATE TABLE A LIKE B | Supported |
| Table | CREATE | CREATE TABLE IF NOT EXISTS A | Supported |
| Table | CREATE | CREATE TABLE AS SELECT | Not supported |
| Table | ALTER | ALTER TABLE A RENAME B | Supported |
| Table | ALTER | ALTER TABLE A ADD COLUMN B | Supported |
| Table | ALTER | ALTER TABLE A DROP COLUMN B | Supported |
| TABLE | ALTER | ALTER TABLE A ALTER COLUMN SET DEFAULT | Supported |
| Table | ALTER | ALTER TABLE A ALTER COLUMN DROP DEFAULT | Supported |
| Table | ALTER | ALTER TABLE A CHANGE COLUMN | Supported |
| Table | ALTER | ALTER TABLE A MODIFY COLUMN | Supported |
| Table | ALTER | ALTER TABLE A ADD INDEX/KEY B | Supported |
| Table | ALTER | ALTER TABLE A DROP INDEX/KEY B | Supported |
| Table | ALTER | ALTER TABLE A ADD FULLTEXT INDEX/KEY B | Not Supported |
| Table operations | ALTER | ALTER TABLE A ADD UNIQUE INDEX/KEY B | Supported |
| Table | ALTER | ALTER TABLE A ADD CONSTRAINT B | Supported |
| Table | ALTER | ALTER TABLE A DROP CONSTRAINT B | Not Supported |
| Statement | ALTER | ALTER TABLE A DROP PRIMARY KEY | Supported only in OceanBase Database V4.0.0 or later of the source and target databases. |
| Statement | ALTER | ALTER TABLE A ADD PARTITION B | Supported |
| Table | ALTER | ALTER TABLE A DROP PARTITION B | Supported |
| Statement | ALTER | ALTER TABLE A TRUNCATE PARTITION B | Supported |
| TABLE | ALTER | ALTER TABLE A PARTITION BY... | Supported |
| Table | DROP | DROP TABLE A | Supported |
| Table | RENAME | RENAME TABLE A TO B | Supported |
| Table name | TRUNCATE | TRUNCATE TABLE A | Supported |
| Index | CREATE | CREATE INDEX A ON B(C) | Supported |
| Index Type | CREATE | CREATE UNIQUE INDEX A ON B(C) | Supported |
| Index | DROP | DROP INDEX A ON B | Supported |
OB_Oracle -> Kafka
The following table describes the DDL synchronization support when you migrate data from the Oracle compatible mode of OceanBase Database to Kafka. For more information, see DDL synchronization from OceanBase databases to Kafka instances.
| Object type | DDL type | DDL statement | Supported? |
|---|---|---|---|
| Table | CREATE | CREATE TABLE A | Supported |
| Item | Syntax | CREATE TABLE A LIKE B | Supported |
| Table | CREATE | CREATE TABLE IF NOT EXISTS A | Supported |
| Table | CREATE | CREATE TABLE AS SELECT | Not supported |
| Operation | ALTER | ALTER TABLE A RENAME B | Supported |
| Table | ALTER | ALTER TABLE A ADD COLUMN B | Supported |
| Table | ALTER | ALTER TABLE A DROP COLUMN B | Supported |
| Table | ALTER | ALTER TABLE A ALTER COLUMN SET DEFAULT | Supported |
| Table | ALTER | ALTER TABLE A ALTER COLUMN DROP DEFAULT | Supported |
| Table | ALTER | ALTER TABLE A CHANGE COLUMN | Supported |
| Table | ALTER | ALTER TABLE A MODIFY COLUMN | Supported |
| Table | ALTER | ALTER TABLE A ADD INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A DROP INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A ADD FULLTEXT INDEX/KEY B | N/A |
| Table | ALTER | ALTER TABLE A ADD UNIQUE INDEX/KEY B | N/A |
| Operation | ALTER | ALTER TABLE A ADD CONSTRAINT B | Supported |
| Table | ALTER | ALTER TABLE A DROP CONSTRAINT B | Supported |
| Statement | ALTER | ALTER TABLE A DROP PRIMARY KEY |
NoteOnly OceanBase Database V4.0.0 and later for the source and destination databases are supported. |
| Table | ALTER | ALTER TABLE A ADD PARTITION B | Supported |
| Statement | ALTER | ALTER TABLE A DROP PARTITION B | Supported |
| Table | ALTER | ALTER TABLE A TRUNCATE PARTITION B | Supported |
| Statement | ALTER | ALTER TABLE A PARTITION BY... | N/A |
| Table | DROP | DROP TABLE A | Supported |
| Table | RENAME | RENAME TABLE A TO B | Supported |
| Table | TRUNCATE | TRUNCATE TABLE A | Supported |
| Index | CREATE | CREATE INDEX A ON B(C) | Supported |
| index_name | CREATE | CREATE UNIQUE INDEX A ON B(C) | Supported |
| Index | DROP | DROP INDEX A ON B | Supported |