MariaDB - Alter Command

La commande ALTER fournit un moyen de modifier la structure d'une table existante, c'est-à-dire des modifications telles que la suppression ou l'ajout de colonnes, la modification d'index, la modification des types de données ou la modification des noms. ALTER attend également d'appliquer les modifications lorsqu'un verrou de métadonnées est actif.

Utilisation d'ALTER pour modifier les colonnes

ALTER associé à DROP supprime une colonne existante. Cependant, il échoue si la colonne est la seule colonne restante.

Passez en revue l'exemple ci-dessous -

mysql> ALTER TABLE products_tbl DROP version_num;

Utilisez une instruction ALTER ... ADD pour ajouter des colonnes -

mysql> ALTER TABLE products_tbl ADD discontinued CHAR(1);

Utilisez les mots clés FIRST et AFTER pour spécifier l'emplacement de la colonne -

ALTER TABLE products_tbl ADD discontinued CHAR(1) FIRST;
ALTER TABLE products_tbl ADD discontinued CHAR(1) AFTER quantity;

Notez que les mots clés FIRST et AFTER s'appliquent uniquement aux instructions ALTER ... ADD. De plus, vous devez supprimer une table, puis l'ajouter afin de la repositionner.

Modifiez une définition ou un nom de colonne à l'aide de la clause MODIFY ou CHANGE dans une instruction ALTER. Les clauses ont des effets similaires, mais utilisent une syntaxe sensiblement différente.

Passez en revue un exemple CHANGE donné ci-dessous -

mysql> ALTER TABLE products_tbl CHANGE discontinued status CHAR(4);

Dans une instruction utilisant CHANGE, spécifiez la colonne d'origine, puis la nouvelle colonne qui la remplacera. Consultez un exemple MODIFY ci-dessous -

mysql> ALTER TABLE products_tbl MODIFY discontinued CHAR(4);

La commande ALTER permet également de modifier les valeurs par défaut. Revoir un exemple -

mysql> ALTER TABLE products_tbl ALTER discontinued SET DEFAULT N;

Vous pouvez également l'utiliser pour supprimer les contraintes par défaut en l'associant à une clause DROP -

mysql> ALTER TABLE products_tbl ALTER discontinued DROP DEFAULT;

Utilisation d'ALTER pour modifier les tables

Changer le type de table avec la clause TYPE -

mysql> ALTER TABLE products_tbl TYPE = INNODB;

Renommer une table avec le mot clé RENAME -

mysql> ALTER TABLE products_tbl RENAME TO products2016_tbl;