Este tema describe el alcance de conversión compatible de las operaciones DDL CREATE TABLE durante la migración de datos desde una base de datos MySQL hacia un inquilino MySQL de OceanBase Database.
Sintaxis
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
|
Sintaxis |
Descripción |
|
|
Permite crear una columna, un índice o una restricción. Para obtener más información, consulte Create a column y Create an index or a constraint. |
|
|
Para obtener más información, consulte table_options después de esta sección. |
|
|
Para obtener más información, consulte Create a partition. |
-
Cuando utilice la instrucción CREATE TABLE para crear una tabla, especifique las palabras clave
IF NOT EXISTSy la opciónLIKE. Ejemplo:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_tbl_name | (LIKE old_tbl_name) } -
Esta instrucción no permite crear tablas temporales. La palabra clave
TEMPORARYse ignorará.NotaEn los inquilinos MySQL de OceanBase Database V3.2.3 sí es posible crear tablas temporales.
No utilice la instrucción
CREATE TABLE AS SELECTpara crear una tabla a partir del conjunto de resultados de una instrucción SELECT. En este escenario, la salida será una cadena vacía.
table_options
Es posible especificar comentarios en la tabla.
También puede especificar
CHARACTER SET.El resto de las opciones de tabla no se analizan sintácticamente y se ignoran.
A continuación se muestra un código de ejemplo que detalla las opciones de tabla:
table_option: {
AUTOEXTEND_SIZE [=] value
| AUTO_INCREMENT [=] value
| AVG_ROW_LENGTH [=] value
| [DEFAULT] CHARACTER SET [=] charset_name
| CHECKSUM [=] {0 | 1}
| [DEFAULT] COLLATE [=] collation_name
| COMMENT [=] 'string'
| COMPRESSION [=] {'ZLIB' | 'LZ4' | 'NONE'}
| CONNECTION [=] 'connect_string'
| {DATA | INDEX} DIRECTORY [=] 'absolute path to directory'
| DELAY_KEY_WRITE [=] {0 | 1}
| ENCRYPTION [=] {'Y' | 'N'}
| ENGINE [=] engine_name
| ENGINE_ATTRIBUTE [=] 'string'
| INSERT_METHOD [=] { NO | FIRST | LAST }
| KEY_BLOCK_SIZE [=] value
| MAX_ROWS [=] value
| MIN_ROWS [=] value
| PACK_KEYS [=] {0 | 1 | DEFAULT}
| PASSWORD [=] 'string'
| ROW_FORMAT [=] {DEFAULT | DYNAMIC | FIXED | COMPRESSED | REDUNDANT | COMPACT}
| SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
| STATS_AUTO_RECALC [=] {DEFAULT | 0 | 1}
| STATS_PERSISTENT [=] {DEFAULT | 0 | 1}
| STATS_SAMPLE_PAGES [=] value
| TABLESPACE tablespace_name [STORAGE {DISK | MEMORY}]
| UNION [=] (tbl_name[,tbl_name]...)
}
Límites
Debido a los límites de los inquilinos MySQL de OceanBase Database, es posible que se devuelva un error cuando las instrucciones DDL sincronizadas se convierten y ejecutan en un inquilino MySQL de OceanBase Database en los siguientes escenarios:
Los inquilinos MySQL de OceanBase Database admiten un número limitado de conjuntos de caracteres.
No utilice conjuntos de caracteres no compatibles, como Latin-1. Si establece de forma forzada un conjunto de caracteres no compatible para un inquilino MySQL de OceanBase Database, dicho conjunto no se convertirá durante la sincronización DDL hacia la base de datos de destino y se devolverá un error.