Este tema describe el alcance de conversión compatible para las operaciones DDL de ALTER TABLE sobre restricciones e índices durante la migración de datos desde una base de datos MySQL hacia un inquilino MySQL de OceanBase Database.
Sintaxis
alter_option: {
ADD {INDEX | KEY} [index_name]
[index_type] (key_part,...) [index_option] ...
| ADD {FULLTEXT | SPATIAL} [INDEX | KEY] [index_name]
(key_part,...) [index_option] ...
| ADD [CONSTRAINT [symbol]] PRIMARY KEY
[index_type] (key_part,...)
[index_option] ...
| ADD [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY]
[index_name] [index_type] (key_part,...)
[index_option] ...
| ADD [CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (col_name,...)
reference_definition
| ADD [CONSTRAINT [symbol]] CHECK (expr) [[NOT] ENFORCED]
| DROP {CHECK | CONSTRAINT} symbol
| ALTER {CHECK | CONSTRAINT} symbol [NOT] ENFORCED
| ALTER INDEX index_name {VISIBLE | INVISIBLE}
| {DISABLE | ENABLE} KEYS
| DROP {INDEX | KEY} index_name
| DROP PRIMARY KEY
| DROP FOREIGN KEY fk_symbol
| RENAME {INDEX | KEY} old_index_name TO new_index_name
}
key_part: {col_name [(length)] | (expr)} [ASC | DESC]
index_type:
USING {BTREE | HASH}
index_option: {
KEY_BLOCK_SIZE [=] value
| index_type
| WITH PARSER parser_name
| COMMENT 'string'
| {VISIBLE | INVISIBLE}
}
Operaciones compatibles
Utilice
ADD INDEX | KEYpara crear un índice normal.Utilice
DROP INDEXpara eliminar un índice.Utilice
ADD FULLTEXT INDEX | KEYpara crear un índice de texto completo.Utilice
ADD UNIQUE INDEX | KEYpara crear un índice único.Utilice
ADD FOREIGN KEYpara crear una clave externa.-
Utilice
DROP PRIMARY KEYpara eliminar una restricción PRIMARY KEY.ImportanteEsta operación solo es compatible con OceanBase Database V4.0.0 y versiones posteriores.
Operaciones no compatibles
Si una sentencia DDL que se va a sincronizar contiene alguna de las definiciones no compatibles siguientes, la conversión fallará y el resultado será una cadena vacía.
Crear índices basados en funciones en columnas UNIQUE KEY, INDEX/KEY y FULLTEXT INDEX. Estos índices solo pueden crearse sobre campos.
Utilizar
ADD SPATIAL INDEX.Utilizar
ADD PRIMARY KEY.Utilizar
ALTER TABLE DISABLE | ENABLE KEYS.Especificar las palabras clave
ON [DELETE | UPDATE] SET NULLpara columnasFOREIGN KEY.-
En inquilinos MySQL de OceanBase Database con versiones anteriores a la V3.2.3, no es posible realizar las operaciones siguientes:
Utilizar
ADD CHECK.Utilizar
DROP CHECK.Utilizar
ALTER CHECK [NOT] ENFORCED.Utilizar
ALTER INDEX VISIBLE | INVISIBLE.-
Utilizar
RENAME INDEX | KEY.ALTER TABLE t rename KEY k TO kk; ALTER TABLE T RENAME INDEX b TO w;
Cláusulas y opciones ignoradas
Las cláusulas y opciones siguientes se ignorarán y no se analizarán ni convertirán cuando se especifiquen en las sentencias DDL sincronizadas.
USING BTREEoUSING HASHKEY_BLOCK_SIZE,index_type,WITH PARSER,COMMENT,VISIBLE | INVISIBLE,ENGINE_ATTRIBUTEoSECONDARY_ENGINE_ATTRIBUTEenindex_option[NOT] ENFORCEDpara restricciones CHECKMATCH FULL | MATCH PARTIAL | MATCH SIMPLEpara claves externas
Límites
Debido a los límites de los inquilinos MySQL de OceanBase Database, puede producirse un error al convertir y ejecutar sentencias DDL sincronizadas en dichos inquilinos en los escenarios siguientes.
Los inquilinos MySQL de OceanBase Database no permiten crear los tipos de restricciones siguientes en ciertos tipos de campos: PRIMARY KEY, UNIQUE KEY, INDEX/KEY, FULLTEXT INDEX y FOREIGN KEY.
Los inquilinos MySQL de OceanBase Database no admiten la especificación de ciertas funciones o expresiones en restricciones CHECK.
Los inquilinos MySQL de OceanBase Database no admiten la especificación de ciertas funciones o expresiones en restricciones FOREIGN KEY.