Tous les produits
Search
Centre de documentation

ApsaraDB for OceanBase (Deprecated):Incompatibilités de l'instruction ALTER TABLE

Dernière mise à jour :Aug 09, 2026

Cette rubrique décrit les scénarios dans lesquels le composant de synchronisation DDL du service de transmission de données peut convertir les opérations DDL ALTER TABLE exécutées dans une base de données MySQL, mais où ces opérations ne peuvent pas être appliquées dans un locataire MySQL d'OceanBase Database lors de la migration des données.

Référence à d'autres colonnes dans une expression CHECK de ligne

  • Bases de données MySQL

    • Lors de l'exécution de l'instruction ALTER TABLE ADD COLUM, il est impossible de référencer d'autres colonnes (de n'importe quel type) dans l'expression CHECK de ligne.

    • Lors de l'exécution de l'instruction ALTER TABLE MODIFY/CHANGE COLUM, vous pouvez référencer d'autres colonnes (de n'importe quel type) dans l'expression CHECK de ligne.

  • Locataires MySQL d'OceanBase Database

    • Lors de l'exécution de l'instruction ALTER TABLE ADD COLUM, il est impossible de référencer d'autres colonnes (de n'importe quel type) dans l'expression CHECK de ligne.

    • Lors de l'exécution de l'instruction ALTER TABLE MODIFY/CHANGE COLUM, il est impossible de référencer d'autres colonnes (de n'importe quel type) dans l'expression CHECK de ligne.

      Important

      D'autres expressions CHECK peuvent ne pas être prises en charge en raison des limites d'un locataire MySQL d'OceanBase Database.

Modification du type d'une colonne

  • Les bases de données MySQL et les locataires MySQL d'OceanBase Database imposent des limites différentes concernant les types de colonnes contraintes après modification. Pour plus d'informations, consultez la section Modification du type d'une colonne contrainte.

  • Les bases de données MySQL et les locataires MySQL d'OceanBase Database imposent des limites différentes concernant les types de colonnes non contraintes. Pour plus d'informations, consultez la section Modification du type d'une colonne non contrainte.

Modification de la longueur d'une colonne

  • Les bases de données MySQL et les locataires MySQL d'OceanBase Database imposent des limites différentes concernant la longueur des colonnes contraintes après modification. Pour plus d'informations, consultez la section Modification de la longueur d'une colonne contrainte.

  • Les bases de données MySQL et les locataires MySQL d'OceanBase Database imposent des limites différentes concernant la longueur des colonnes non contraintes après modification. Pour plus d'informations, consultez la section Modification de la longueur d'une colonne non contrainte.

Conversion d'une colonne NULLABLE en colonne NOT NULL

  • Bases de données MySQL

    Si une colonne NULLABLE n'est pas contrainte, exécutez l'instruction CHANGE/MODIFY COLUMN pour la convertir en colonne NOT NULL. Les modifications suivantes sont également prises en charge : NOT NULL -> NULLABLE, NULLABLE -> NULLABLE et NOT NULL -> NOT NULL.

    Important

    Si une colonne NULLABLE contient une valeur NULL, vous ne pouvez pas la convertir en colonne NOT NULL.

  • Locataires MySQL d'OceanBase Database

    • Si une colonne NULLABLE n'est pas contrainte, vous ne pouvez pas la convertir en colonne NOT NULL en exécutant l'instruction CHANGE/MODIFY COLUMN.

    • Si une colonne NULLABLE n'est pas contrainte, les modifications suivantes sont prises en charge : NOT NULL -> NULLABLE, NULLABLE -> NULLABLE et NOT NULL -> NOT NULL.

Modification du jeu de caractères ou de la collation

  • Bases de données MySQL : pris en charge.

  • Locataires MySQL d'OceanBase Database : non pris en charge.

Suppression d'une colonne contrainte

Les bases de données MySQL et les locataires MySQL d'OceanBase Database imposent des limites différentes concernant la suppression d'une colonne contrainte. Pour plus d'informations, consultez la section Suppression d'une colonne contrainte.

L'instruction CHANGE/MODIFY COLUMN NOT NULL et l'instruction COMMENT ne peuvent pas coexister

Exemple de code :

 ALTER TABLE T MODIFY C INT NOT NULL, COMMENT 'INT COLUMN';
  • Bases de données MySQL

    • Si une colonne n'est pas contrainte, vous pouvez la convertir en colonne NOT NULL ou NULLABLE en exécutant l'instruction CHANGE/MODIFY COLUMN avec une clause COMMENT.

    • Si une colonne possède la contrainte PRIMARY KEY, UNIQUE KEY, KEY ou FULLTEXT, vous pouvez la convertir en colonne NOT NULL en exécutant l'instruction CHANGE/MODIFY COLUMN avec une clause COMMENT. Toutefois, si vous tentez de la convertir en colonne NULLABLE dans ce cas, une erreur est renvoyée.

  • Locataires MySQL d'OceanBase Database

    • Qu'une colonne NULLABLE ou NOT NULL soit contrainte ou non, vous ne pouvez pas la convertir en colonne NOT NULL en exécutant l'instruction CHANGE/MODIFY COLUMN avec une clause COMMENT.

    • Si une colonne NULLABLE ou NOT NULL n'est pas contrainte, vous pouvez la convertir en colonne NULLABLE.

    • Si une colonne NOT NULL possède une contrainte PRIMARY KEY, UNIQUE KEY, KEY ou FULLTEXT et que vous souhaitez la convertir en colonne NULLABLE en exécutant l'instruction CHANGE/MODIFY COLUMN avec une clause COMMENT, aucune erreur n'est renvoyée, mais la modification ne prend pas effet.