ALTER Command
Introduction
La commande MySQL ALTER est très utile lorsque vous voulez changer le nom de votre table, un champ de la table ou si vous voulez ajouter ou supprimer une colonne existante dans une table.
Commençons par la création d'une table appelée testalter_tbl.
root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> create table testalter_tbl
-> (
-> i INT,
-> c CHAR(1)
-> );
Query OK, 0 rows affected (0.05 sec)
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| i | int(11) | YES | | NULL | |
| c | char(1) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
Dropping, Adding or Repositioning a Column
Si vous voulez supprimer une colonne existante i de la table MySQL ci-dessus, vous utiliserez la clause DROP avec la commande ALTER, comme indiqué ci-dessous.
mysql> ALTER TABLE testalter_tbl DROP i;
Une clause DROP ne fonctionnera pas si la colonne est la seule qui reste dans la table.
Pour ajouter une colonne, utilisez ADD et spécifiez la définition de la colonne. L'instruction suivante restaure la colonne i dans la table testalter_tbl.
mysql> ALTER TABLE testalter_tbl ADD i INT;
Après avoir émis cette instruction, testalter contiendra les deux mêmes colonnes que lorsque vous avez créé la table, mais n'aura pas la même structure. Ceci est dû au fait que de nouvelles colonnes sont ajoutées à la fin de la table par défaut. Ainsi, même si i était à l'origine la première colonne de mytbl, c'est maintenant la dernière.
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c | char(1) | YES | | NULL | |
| i | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
Pour indiquer que vous souhaitez qu'une colonne occupe une position spécifique dans le tableau, utilisez FIRST pour en faire la première colonne ou AFTER col_name pour indiquer que la nouvelle colonne doit être placée après le nom_col.
Essayez les instructions ALTER TABLE suivantes, en utilisant SHOW COLUMNS après chacune d'entre elles pour voir l'effet de chacune d'entre elles...
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT FIRST;
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT AFTER c;
Les spécificateurs FIRST et AFTER ne fonctionnent qu'avec la clause ADD. Cela signifie que si vous souhaitez repositionner une colonne existante dans une table, vous devez d'abord la DROP, puis ADD à la nouvelle position.
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !