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
CHECKdans 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é
ASCouDESC.
Opérations non prises en charge
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/KEYetFULLTEXT 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 NULLpour les clés étrangères.
Clauses et options ignorées
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 BTREEouUSING HASHKEY_BLOCK_SIZE,index_type,WITH PARSER,COMMENT,VISIBLE|INVISIBLE,ENGINE_ATTRIBUTEouSECONDARY_ENGINE_ATTRIBUTEdansindex_option[NOT] ENFORCEDpour les contraintesCHECKMATCH FULL|MATCH PARTIAL|MATCH SIMPLEpour les clés étrangères
Limites
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 INDEXetFOREIGN 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.