Tous les produits
Search
Centre de documentation

ApsaraDB for OceanBase (Deprecated):Créer un index ou une contrainte

Dernière mise à jour :Aug 09, 2026

Cette rubrique décrit la portée de conversion prise en charge pour les opérations DDL CREATE TABLE permettant de créer des index ou des contraintes lors de la migration de données d'une base de données MySQL vers un locataire MySQL d'OceanBase Database.

Syntaxe

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

Opérations prises en charge

  • Création de clés primaires.

  • Création de clés uniques.

  • Création d'index ou de clés.

  • Création de clés étrangères.

    Créez des clés étrangères sur des champs, des fonctions ou des expressions. Spécifiez les options ON [DELETE | UPDATE] RESTRICT | CASCADE | NO ACTION | SET DEFAULT.

  • Création d'index full-text.

  • Création de contraintes CHECK dans les locataires MySQL d'OceanBase Database V3.2.3 et versions ultérieures.

  • Création d'index préfixés.

  • Spécification du mot-clé ASC ou DESC.

Opérations non prises en charge

Important

Si une instruction DDL ALTER TABLE à convertir contient les définitions non prises en charge suivantes, la conversion échoue et renvoie une chaîne vide.

  • Création des types d'index suivants avec des parties de clé fonctionnelles : PRIMARY KEY, UNIQUE KEY, INDEX/KEY et FULLTEXT INDEX. (Vous pouvez créer ces index uniquement sur des champs.)

    Définitions de clé primaire, de clé unique, d'index, de clé ou d'index full-text contenant des fonctions ou des expressions. Exemples :

    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)))));
  • Création d'index spatiaux.

  • Spécification de l'option ON [DELETE | UPDATE] SET NULL pour les clés étrangères.

Clauses et options ignorées

Remarque

Les clauses et options suivantes sont ignorées ; elles ne sont ni résolues ni converties lorsqu'elles sont spécifiées dans les instructions DDL synchronisées.

  • USING BTREE ou USING HASH

  • KEY_BLOCK_SIZE, index_type, WITH PARSER, COMMENT, VISIBLE | INVISIBLE, ENGINE_ATTRIBUTE ou SECONDARY_ENGINE_ATTRIBUTE dans index_option

  • [NOT] ENFORCED pour les contraintes CHECK

  • MATCH FULL | MATCH PARTIAL | MATCH SIMPLE pour les clés étrangères

Limites

Important

En raison des limites des locataires MySQL d'OceanBase Database, une erreur peut survenir lors de la conversion et de l'exécution des instructions DDL synchronisées dans un locataire MySQL d'OceanBase Database dans les scénarios suivants :

  • Les locataires MySQL d'OceanBase Database ne permettent pas de créer les types de contraintes suivants sur certains types de champs : PRIMARY KEY, UNIQUE KEY, INDEX/KEY, FULLTEXT INDEX et FOREIGN KEY.

  • Les locataires MySQL d'OceanBase Database ne prennent pas en charge l'utilisation de certaines fonctions ou expressions dans les contraintes CHECK.

  • Les locataires MySQL d'OceanBase Database ne prennent pas en charge l'utilisation de certaines fonctions ou expressions dans les contraintes FOREIGN KEY.