When source and destination databases have different case-sensitivity behaviors — for example, migrating from Oracle (which defaults to uppercase) to MySQL (which may default to lowercase) — object name mismatches can cause migration failures. When you configure a Data Transmission Service (DTS) task, you can specify how DTS capitalizes database names, table names, and column names in the destination instance to prevent these conflicts.
Capitalization rules
DTS supports four capitalization rules.
DTS default policy
DTS determines the capitalization of object names based on the destination database type and the lower_case_table_names parameter.
| Destination database | Parameter | Result in the destination instance |
|---|---|---|
| Self-managed MySQL database or ApsaraDB RDS for MySQL instance; ApsaraDB RDS for MariaDB; PolarDB for MySQL; PolarDB-X; AnalyticDB for MySQL V3.0 | lower_case_table_names = 1 or 2 | Database names and table names are in lowercase. Column names match the source. |
| Self-managed MySQL database or ApsaraDB RDS for MySQL instance; ApsaraDB RDS for MariaDB; PolarDB for MySQL; PolarDB-X; AnalyticDB for MySQL V3.0 | lower_case_table_names = 0 | Database names, table names, and column names match the source. |
| AnalyticDB for MySQL V2.0; DataHub; MaxCompute; HybridDB for MySQL | — | Database names, table names, and column names are in lowercase. |
| Self-managed Oracle database | — | Database names, table names, and column names are in uppercase. |
| Self-managed SQL Server database or ApsaraDB RDS for SQL Server instance; PolarDB O Edition; Self-managed PostgreSQL database or ApsaraDB RDS for PostgreSQL instance; ApsaraDB RDS for PPAS; AnalyticDB for PostgreSQL; Self-managed Db2 database; Self-managed MongoDB database or ApsaraDB for MongoDB instance; Self-managed Redis database or ApsaraDB for Redis instance; Tablestore; Elasticsearch | — | Database names and table names are in lowercase. Column names match the source. |
Consistent with the source database
Database names, table names, and column names in the destination instance match those in the source instance.
Example: If the source has a table named OrderItems, the destination also uses OrderItems.
Consistent with the default policy of the destination database (uppercase)
All database names, table names, and column names migrated or synchronized to the destination instance are converted to uppercase.
Example: If the source has a table named orderItems, the destination uses ORDERITEMS.
Consistent with the default policy of the destination database (lowercase)
All database names, table names, and column names migrated or synchronized to the destination instance are converted to lowercase.
Example: If the source has a table named OrderItems, the destination uses orderitems.
Limitations
Capitalization rules apply only to database names, table names, and column names. Views, functions, and stored procedures are not covered. If a table in the destination database is renamed, the corresponding views, functions, and stored procedures may fail to be created.
Objects cannot contain CHECK constraints or computed columns.