Cette rubrique décrit les conversions prises en charge pour les opérations DDL ALTER TABLE sur les colonnes lors de la migration de données d'une base de données MySQL vers un locataire MySQL d'OceanBase Database.
Syntaxe
ALTER TABLE tbl_name
[alter_option [, alter_option] ...]
alter_option: {
ADD [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
| ADD [COLUMN] (col_name column_definition,...)
| ALTER [COLUMN] col_name {
SET DEFAULT {literal | (expr)}
| SET {VISIBLE | INVISIBLE}
| DROP DEFAULT
}
| CHANGE [COLUMN] old_col_name new_col_name column_definition
[FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| MODIFY [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
| ORDER BY col_name [, col_name] ...
| RENAME COLUMN old_col_name TO new_col_name
}
Opérations DDL prises en charge
Utilisez
ADD COLUMNpour ajouter une ou plusieurs colonnes. Pour plus d'informations sur la définition d'une colonne, consultez la section Créer une colonne. Vous pouvez également spécifier le mot-cléFIRSTouAFTER.Utilisez
ALTER COLUMN SET DEFAULTpour modifier la valeur par défaut d'une colonne.Utilisez
ALTER COLUMN DROP DEFAULTpour supprimer la valeur par défaut d'une colonne.Utilisez
CHANGE COLUMNouMODIFY COLUMNpour modifier une colonne.Utilisez
DROP COLUMNpour supprimer une colonne.
Opérations non prises en charge
Si une instruction DDL à synchroniser contient l'une des définitions non prises en charge suivantes, la conversion échoue et renvoie une chaîne vide.
Utilisation de
ALTER COLUMN SET VISIBLE | INVISIBLEpour modifier la visibilité d'une colonne.Utilisation de
ORDER BY col_name.-
Utilisation de
RENAME COLUMNpour renommer une colonne.ALTER TABLE t RENAME COLUMN d TO g;
Clauses et options ignorées
Les clauses et options suivantes sont ignorées : elles ne sont ni résolues ni converties lorsqu'elles apparaissent dans les instructions DDL synchronisées.
Attribut
FIRSTouAFTER(cet attribut est ignoré si une instruction DDLALTER TABLEcontient la clauseMODIFY COLUMNouCHANGE COLUMN).
Limites
En raison des limites des locataires MySQL d'OceanBase Database, la conversion et l'exécution des instructions DDL synchronisées peuvent générer une erreur dans les scénarios suivants.
La modification du type de champ via les clauses
MODIFY COLUMNouCHANGE COLUMNpeut échouer, car certains types de champs ne sont pas pris en charge par les locataires MySQL d'OceanBase Database.La modification de la longueur du champ via les instructions
MODIFY COLUMNouCHANGE COLUMNpeut échouer.La définition d'une valeur par défaut via l'instruction
ALTER COLUMN SET DEFAULTpeut échouer, car certaines fonctions ou expressions ne sont pas prises en charge par les locataires MySQL d'OceanBase Database.Il est impossible de supprimer les colonnes servant de clés primaires, de clés uniques ou d'index standard, ni les colonnes soumises à des contraintes
FOREIGN KEY.