Latest web development tutorials

commande MySQL ALTER

Quand nous avons besoin de modifier le tableau de données ou modifier champ de table de données, vous devez utiliser la commande MySQL ALTER.

Tutorial avant le début de ce chapitre laissez-nous créer une table, le nom de la table: testalter_tbl.

root@host# mysql -u root -p password;
Enter password:*******
mysql> use w3big;
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)

Supprimer, ajouter ou modifier un champ de table

Utilisez les commandes suivantes ALTER et clause DROP supprimer commande créé au-dessus de table i champs:

mysql> ALTER TABLE testalter_tbl  DROP i;

Si les données de la table ne reste un champ que vous ne pouvez pas utiliser DROP pour supprimer le champ.

MySQL utiliser la clause ADD pour ajouter des colonnes veulent à la fiche technique, comme des exemples de champs de la table ajouter i testalter_tbl et définir les types de données:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Après l'exécution de la commande ci-dessus, ils champs sont automatiquement ajoutés à la fin du champ de la table de données.

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)

Si vous avez besoin de spécifier l'emplacement du nouveau champ, (après réglage situé dans un champ), vous pouvez utiliser MySQL fournir mots clés FIRST (set bit dans la première colonne), après le nom de domaine.

Essayez l'instruction ALTER TABLE suivante, après la mise en œuvre réussie, l'utilisation SHOW COLUMNS voir la structure de table de changement:

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;

FIRST et AFTER uniquement des mots clés pour la clause ADD, donc si vous voulez réinitialiser la position du champ de table de données sur la nécessité d'utiliser DROP supprimer un champ, puis utiliser ADD pour ajouter le champ et définir la position.


Modifier le nom du champ et tapez

Si vous avez besoin de modifier le type de champ et le nom, vous pouvez utiliser changer ou modifier la clause de la commande ALTER.

Par exemple, le champ de type c de CHAR (1) à CHAR (10), vous pouvez exécuter la commande suivante:

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

Utiliser la clause CHANGE grammaire sont très différents. Après le mot-clé CHANGE, suivi du nom de domaine que vous souhaitez modifier, puis spécifiez un nouveau nom de domaine et le type. Essayez les exemples suivants:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Effet de ALTER TABLE sur les valeurs NULL et par défaut

Lorsque vous modifiez le champ, vous pouvez spécifier si vous souhaitez inclure ou si seulement définir la valeur par défaut.

L'exemple suivant, le champ j spécifié est NOT NULL et la valeur par défaut est 100.

mysql> ALTER TABLE testalter_tbl 
    -> MODIFY j BIGINT NOT NULL DEFAULT 100;

Si vous ne définissez pas une valeur par défaut, MySQL va définir automatiquement les paramètres par défaut de champ à NULL.


Modifier les valeurs de champ par défaut

Vous pouvez utiliser le ALTER modifier la valeur par défaut du champ, essayez les exemples suivants:

mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | 1000    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Vous pouvez également utiliser la commande par défaut clauses ALTER et DROP pour supprimer le champ, à titre d'exemples:

mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
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)
Changing a Table Type:

Modifier les types de tables de données, qui peut être accompli en utilisant la commande ALTER et clause TYPE. Essayez les exemples suivants, nous allons modifier le type de table testalter_tbl MyISAM:

Note: Voir les types de tables de données peuvent utiliser l'instruction SHOW TABLE STATUS.

mysql> ALTER TABLE testalter_tbl TYPE = MYISAM;
mysql>  SHOW TABLE STATUS LIKE 'testalter_tbl'\G
*************************** 1. row ****************
           Name: testalter_tbl
           Type: MyISAM
     Row_format: Fixed
           Rows: 0
 Avg_row_length: 0
    Data_length: 0
Max_data_length: 25769803775
   Index_length: 1024
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2007-06-03 08:04:36
    Update_time: 2007-06-03 08:04:36
     Check_time: NULL
 Create_options:
        Comment:
1 row in set (0.00 sec)

Modifiez le nom de la table

Si vous avez besoin de modifier le nom de la table de données, vous pouvez utiliser la clause RENAME dans ALTER TABLE à atteindre.

Essayez les exemples suivants de tableaux de données testalter_tbl renommer alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

commande ALTER peut également être utilisé pour créer et supprimer des index des tables de données MySQL, cette fonction nous allons introduire dans le chapitre suivant.