Cette rubrique décrit la portée de conversion prise en charge pour les opérations DDL ALTER TABLE portant sur les contraintes et les index lors de la migration des données d'une base de données MySQL vers un locataire MySQL d'OceanBase Database.
Syntaxe
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}
}
Opérations prises en charge
Utilisez
ADD INDEX | KEYpour créer un index normal.Servez-vous de
DROP INDEXpour supprimer un index.Ayez recours à
ADD FULLTEXT INDEX | KEYafin de créer un index full-text.Employez
ADD UNIQUE INDEX | KEYpour générer un index unique.Appliquez
ADD FOREIGN KEYpour établir une clé étrangère.-
Exécutez
DROP PRIMARY KEYpour retirer une contrainte PRIMARY KEY.ImportantSeules les versions d'OceanBase Database V4.0.0 et ultérieures prennent en charge cette opération.
Opérations non prises en charge
Si une instruction DDL à synchroniser contient les définitions non prises en charge suivantes, la conversion échouera et la sortie sera une chaîne vide.
Créez des index basés sur des fonctions sur les colonnes UNIQUE KEY, INDEX/KEY et FULLTEXT INDEX. Vous ne pouvez créer ces index que sur des champs.
Utilisez
ADD SPATIAL INDEX.Faites appel à
ADD PRIMARY KEY.Recourez à
ALTER TABLE DISABLE | ENABLE KEYS.Spécifiez les mots-clés
ON [DELETE | UPDATE] SET NULLpour les colonnesFOREIGN KEY.-
Dans les locataires MySQL d'OceanBase Database dont la version est antérieure à la V3.2.3, vous ne pouvez pas effectuer les opérations suivantes :
Utilisez
ADD CHECK.Employez
DROP CHECK.Appliquez
ALTER CHECK [NOT] ENFORCED.Servez-vous de
ALTER INDEX VISIBLE | INVISIBLE.-
Exécutez
RENAME INDEX | KEY.ALTER TABLE t rename KEY k TO kk; ALTER TABLE T RENAME INDEX b TO w;
Clauses et options ignorées
Les clauses et options suivantes seront ignorées et ne seront 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 contraintes CHECKMATCH FULL | MATCH PARTIAL | MATCH SIMPLEpour les clés étrangères
Limites
En raison des limites des locataires MySQL d'OceanBase Database, une erreur peut être renvoyée lorsque les instructions DDL synchronisées sont converties et exécutées dans un locataire MySQL d'OceanBase Database dans les scénarios suivants.
Les locataires MySQL d'OceanBase Database ne peuvent pas 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 permettent pas de spécifier certaines fonctions ou expressions dans les contraintes CHECK.
Les locataires MySQL d'OceanBase Database ne permettent pas de spécifier certaines fonctions ou expressions dans les contraintes FOREIGN KEY.