Tous les produits
Search
Centre de documentation

PolarDB:Change the data type of a column without locking the table

Dernière mise à jour :Aug 11, 2026

Online Modify Column (OMC) vous permet d'exécuter des instructions ALTER TABLE dans PolarDB-X sans verrouiller la table, afin que les opérations du langage de manipulation de données (DML) se poursuivent sans interruption pendant les modifications du schéma.

Versions prises en charge

Opération Version minimale
Modification des types de colonnes sans verrouillage V5.4.18-17108394
Ajout ou suppression de colonnes sans verrouillage V5.4.20-20241224
Exécution de DDL sans verrouillage depuis Data Management (DMS) V5.4.20-20241224
Pour connaître les règles de nommage des versions, consultez les Notes de version . Pour vérifier ou mettre à jour la version de votre instance, reportez-vous à la rubrique Affichage et mise à jour de la version d'une instance .

Opérations prises en charge

OMC prend en charge les opérations suivantes dans les bases de données en mode AUTO et en mode DRDS :

Opération Prise en charge par OMC
MODIFY COLUMN — modification du type ou de la position d'une colonne Oui
CHANGE COLUMN — renommage d'une colonne et modification de son type Oui
ADD COLUMN — ajout d'une nouvelle colonne Oui
DROP COLUMN — suppression d'une colonne Oui
ADD INDEX Non
DROP INDEX Non
SET DEFAULT Non

Vous pouvez combiner plusieurs opérations prises en charge au sein d'une seule instruction ALTER TABLE.

Limitations

  • Il est impossible de renommer les colonnes utilisées comme clés de sharding, clés de partitionnement ou clés primaires. Vous pouvez toutefois modifier leur type.

  • Il est impossible de supprimer les colonnes faisant partie d'une clé de sharding, d'une clé de partitionnement ou d'une clé primaire.

  • Il est impossible d'ajouter des contraintes UNIQUE ou KEY à une colonne nouvellement créée.

  • Il est impossible de modifier les colonnes générées ou les colonnes référencées dans une expression de colonne générée.

Syntaxe

Ajoutez ALGORITHM=OMC à la fin de votre instruction ALTER TABLE pour exécuter l'opération sans verrouiller la table. Sans ce mot-clé, PolarDB-X revient à l'algorithme MySQL standard, qui peut acquérir des verrous de métadonnées bloquant les opérations DML.

ALTER TABLE tbl_name
    alter_option [, alter_option] ...
    ALGORITHM = OMC

alter_option: {
    table_options
  | ADD [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]
  | 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]
}

L'option ALGORITHM=OMC s'applique à toutes les clauses alter_option présentes dans la même instruction.

Exemples

Les exemples suivants utilisent une table en mode AUTO. Toutes les instructions intègrent ALGORITHM=OMC afin de s'exécuter sans verrouillage de la table.

Étape 1. Créez la table t1.

CREATE TABLE t1(a INT PRIMARY KEY, b TINYINT, c VARCHAR(10)) PARTITION BY KEY(a);

Étape 2. Modifiez les types des colonnes b et c dans une seule instruction.

ALTER TABLE t1 MODIFY COLUMN b INT, MODIFY COLUMN c VARCHAR(30), ALGORITHM=OMC;

Étape 3. Renommez la colonne b en d, modifiez son type et ajoutez une nouvelle colonne e de type BIGINT — le tout dans une seule instruction.

ALTER TABLE t1 CHANGE COLUMN b d INT, ADD COLUMN e BIGINT AFTER d, ALGORITHM=OMC;

Étapes suivantes