Todos los productos
Search
Centro de documentos

ApsaraDB for OceanBase (Deprecated):Cree un índice o una restricción

Última actualización: Sep 05, 2026

Este tema describe el alcance de conversión compatible de las operaciones DDL CREATE TABLE para crear índices o restricciones durante la migración de datos desde una base de datos MySQL hacia un tenant de MySQL de OceanBase Database.

Sintaxis

create_definition: {
    col_name column_definition
  | {INDEX | KEY} [index_name] [index_type] (key_part,...)
      [index_option] ...
  | {FULLTEXT | SPATIAL} [INDEX | KEY] [index_name] (key_part,...)
      [index_option] ...
  | [CONSTRAINT [symbol]] PRIMARY KEY
      [index_type] (key_part,...)
      [index_option] ...
  | [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY]
      [index_name] [index_type] (key_part,...)
      [index_option] ...
  | [CONSTRAINT [symbol]] FOREIGN KEY
      [index_name] (col_name,...)
      reference_definition
  | check_constraint_definition
}

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}
  |ENGINE_ATTRIBUTE [=] 'string'
  |SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

check_constraint_definition:
    [CONSTRAINT [symbol]] CHECK (expr) [[NOT] ENFORCED]

reference_definition:
    REFERENCES tbl_name (key_part,...)
      [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
      [ON DELETE reference_option]
      [ON UPDATE reference_option]

reference_option:
    RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT

Operaciones compatibles

  • Cree claves primarias.

  • Cree claves únicas.

  • Cree índices o claves.

  • Cree claves foráneas.

    Cree claves foráneas sobre campos, funciones o expresiones. Especifique las opciones ON [DELETE | UPDATE] RESTRICT | CASCADE | NO ACTION | SET DEFAULT.

  • Cree índices de texto completo.

  • Cree restricciones CHECK en tenants de MySQL de OceanBase Database V3.2.3 y versiones posteriores.

  • Cree índices con prefijo.

  • Especifique la palabra clave ASC o DESC.

Operaciones no compatibles

Importante

Si una instrucción DDL ALTER TABLE que se va a convertir contiene alguna de las definiciones no compatibles que se muestran a continuación, la conversión fallará y el resultado será una cadena vacía.

  • Crear los siguientes tipos de índices con partes de clave funcionales: PRIMARY KEY, UNIQUE KEY, INDEX/KEY y FULLTEXT INDEX. Estos índices solo se pueden crear sobre campos.

    Definiciones de clave primaria, clave única, índice, clave o índice de texto completo que contienen funciones o expresiones. Ejemplos:

    CREATE TABLE functional_index_t1 (col1 INT, PRIMARY KEY (col1, (ABS(col1))));
    CREATE TABLE functional_index_t1(x VARCHAR(30), INDEX idx ((CAST(x->>'$.name' AS CHAR(30)))));
  • Crear índices espaciales.

  • Especificar la opción ON [DELETE | UPDATE] SET NULL para las claves foráneas.

Cláusulas y opciones ignoradas

Nota

Las cláusulas y opciones que se muestran a continuación se ignoran; no se resuelven ni se convierten cuando se especifican en las instrucciones 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 las restricciones CHECK

  • MATCH FULL | MATCH PARTIAL | MATCH SIMPLE para las claves foráneas

Límites

Importante

Debido a los límites de los tenants de MySQL de OceanBase Database, es posible que se devuelva un error cuando las instrucciones DDL sincronizadas se convierten y se ejecutan en un tenant de MySQL de OceanBase Database en los escenarios que se muestran a continuación:

  • Los tenants de MySQL de OceanBase Database no permiten crear los siguientes tipos de restricciones sobre ciertos tipos de campos: PRIMARY KEY, UNIQUE KEY, INDEX/KEY, FULLTEXT INDEX y FOREIGN KEY.

  • Los tenants de MySQL de OceanBase Database no admiten especificar ciertas funciones o expresiones en las restricciones CHECK.

  • Los tenants de MySQL de OceanBase Database no admiten especificar ciertas funciones o expresiones en las restricciones FOREIGN KEY.