Este tema describe los escenarios en los que el componente de sincronización DDL del servicio de transmisión de datos puede convertir operaciones DDL de ALTER TABLE ejecutadas en una base de datos MySQL, pero que no pueden ejecutarse en un inquilino MySQL de OceanBase Database durante la migración de datos from la base de datos MySQL hacia dicho inquilino.
Referencia a otras columnas en una expresión CHECK de fila
-
Bases de datos MySQL
Al ejecutar la instrucción
ALTER TABLE ADD COLUM, no es posible hacer referencia a otras columnas (de cualquier tipo) en la expresiónCHECKde la fila.Al ejecutar la instrucción
ALTER TABLE MODIFY/CHANGE COLUM, sí es posible hacer referencia a otras columnas (de cualquier tipo) en la expresiónCHECKde la fila.
-
Inquilinos MySQL de OceanBase Database
Al ejecutar la instrucción
ALTER TABLE ADD COLUM, no es posible hacer referencia a otras columnas (de cualquier tipo) en la expresiónCHECKde la fila.-
Al ejecutar la instrucción
ALTER TABLE MODIFY/CHANGE COLUM, no es posible hacer referencia a otras columnas (de cualquier tipo) en la expresiónCHECKde la fila.ImportanteEs posible que otras expresiones CHECK no sean compatibles debido a los límites de un inquilino MySQL de OceanBase Database.
Cambio del tipo de una columna
Las bases de datos MySQL y los inquilinos MySQL de OceanBase Database tienen límites diferentes respecto a los tipos de columnas con restricciones después de un cambio. Para obtener más información, consulte Change the type of a constrained column.
Las bases de datos MySQL y los inquilinos MySQL de OceanBase Database tienen límites diferentes respecto a los tipos de columnas sin restricciones. Para obtener más información, consulte Change the type of an unconstrained column.
Cambio de la longitud de una columna
Las bases de datos MySQL y los inquilinos MySQL de OceanBase Database tienen límites diferentes respecto a la longitud de columnas con restricciones después de un cambio. Para obtener más información, consulte Change the length of a constrained column.
Las bases de datos MySQL y los inquilinos MySQL de OceanBase Database tienen límites diferentes respecto a la longitud de columnas sin restricciones después de un cambio. Para obtener más información, consulte Change the length of an unconstrained column.
Cambio de una columna NULLABLE a NOT NULL
-
Bases de datos MySQL
Si una columna NULLABLE no tiene restricciones, ejecute la instrucción CHANGE/MODIFY COLUMN para cambiarla a NOT NULL. También se admiten a continuación cambios: NOT NULL -> NULLABLE, NULLABLE -> NULLABLE y NOT NULL -> NOT NULL.
ImportanteSi existe un valor NULL en una columna NULLABLE, no es posible cambiar dicha columna a NOT NULL.
-
Inquilinos MySQL de OceanBase Database
Si una columna NULLABLE no tiene restricciones, no es posible cambiarla a NOT NULL mediante la instrucción CHANGE/MODIFY COLUMN.
Si una columna NULLABLE no tiene restricciones, se admiten a continuación cambios: NOT NULL -> NULLABLE, NULLABLE -> NULLABLE y NOT NULL -> NOT NULL.
Cambio del conjunto de caracteres o la intercalación
Bases de datos MySQL: compatible.
Inquilinos MySQL de OceanBase Database: no compatible.
Eliminación de una columna con restricciones
Las bases de datos MySQL y los inquilinos MySQL de OceanBase Database tienen límites diferentes respecto a la eliminación de una columna con restricciones. Para obtener más información, consulte Delete a constrained column.
Las instrucciones CHANGE/MODIFY COLUMN NOT NULL y COMMENT no pueden coexistir
Código de ejemplo:
ALTER TABLE T MODIFY C INT NOT NULL, COMMENT 'INT COLUMN';
-
Bases de datos MySQL
Si una columna no tiene restricciones, cámbiela a NOT NULL o NULLABLE mediante la instrucción CHANGE/MODIFY COLUMN con una cláusula COMMENT.
Si una columna tiene la restricción PRIMARY KEY, UNIQUE KEY, KEY o FULLTEXT, cámbiela a NOT NULL mediante la instrucción CHANGE/MODIFY COLUMN con una cláusula COMMENT. Sin embargo, si intenta cambiar la columna a NULLABLE en este caso, se devolverá un error.
-
Inquilinos MySQL de OceanBase Database
Independientemente de si una columna NULLABLE o NOT NULL tiene restricciones, no es posible cambiarla a NOT NULL mediante la instrucción CHANGE/MODIFY COLUMN con una cláusula COMMENT.
Si una columna NULLABLE o NOT NULL no tiene restricciones, cámbiela a NULLABLE.
Si una columna NOT NULL tiene una restricción PRIMARY KEY, UNIQUE KEY, KEY o FULLTEXT, y desea cambiarla a NULLABLE mediante la instrucción CHANGE/MODIFY COLUMN con una cláusula COMMENT, no se devolverá ningún error, pero el cambio no surtirá efecto.