Todos los productos
Search
Centro de documentos

ApsaraDB for OceanBase (Deprecated):Operaciones en restricciones e índices

Última actualización: Sep 04, 2026

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 | KEY para crear un índice normal.

  • Utilice DROP INDEX para eliminar un índice.

  • Utilice ADD FULLTEXT INDEX | KEY para crear un índice de texto completo.

  • Utilice ADD UNIQUE INDEX | KEY para crear un índice único.

  • Utilice ADD FOREIGN KEY para crear una clave externa.

  • Utilice DROP PRIMARY KEY para eliminar una restricción PRIMARY KEY.

    Importante

    Esta operación solo es compatible con OceanBase Database V4.0.0 y versiones posteriores.

Operaciones no compatibles

Importante

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 NULL para columnas FOREIGN 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

Importante

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 BTREE o USING HASH

  • KEY_BLOCK_SIZE, index_type, WITH PARSER, COMMENT, VISIBLE | INVISIBLE, ENGINE_ATTRIBUTE o SECONDARY_ENGINE_ATTRIBUTE en index_option

  • [NOT] ENFORCED para restricciones CHECK

  • MATCH FULL | MATCH PARTIAL | MATCH SIMPLE para claves externas

Límites

Importante

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.