MySQL modifie l'ajout pour augmenter plusieurs positions sur le terrain ? Explication détaillée de l'utilisation de l'instruction de modification de colonne

MySQL modifier ajouter pour augmenter plusieurs positions sur le terrain ? Explication détaillée de l'utilisation de l'instruction de modification de colonne

MySQL Commande ALTER

Lorsque nous devons modifier le nom de la table de données ou modifier les champs de la table de données, nous devons utiliser la commande MySQL ALTER.

Avant de commencer ce tutoriel, créons une table nommée : testalter_tbl.

root@host# mysql -u root -p password;
Enter password:*******
mysql> use chenweiliang;
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 des champs de table

La commande suivante utilise la commande ALTER avec la clause DROP pour supprimer la colonne i de la table créée ci-dessus :

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP ne peut pas être utilisé pour supprimer un champ s'il ne reste qu'un seul champ dans la table de données.

La clause ADD est utilisée dans MySQL pour ajouter des colonnes à la table de données. L'exemple suivant ajoute le champ i à la table testalter_tbl et définit le type de données :

mysql> ALTER TABLE testalter_tbl ADD i INT;

Après avoir exécuté la commande ci-dessus, le champ i est automatiquement ajouté à la fin des champs 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, vous pouvez utiliser le mot-clé FIRST fourni par MySQL (setPositionnementpremière colonne), AFTER nom du champ (défini après un champ).

Essayez l'instruction ALTER TABLE suivante et, une fois l'exécution réussie, utilisez SHOW COLUMNS pour voir les modifications apportées à la structure de la table :

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 mots-clés FIRST et AFTER ne sont utilisés que dans la clause ADD, donc si vous souhaitez réinitialiser la position d'un champ de table de données, vous devez d'abord utiliser DROP pour supprimer le champ, puis utiliser ADD pour ajouter le champ et définir la position.


Modifier le type et le nom du champ

Si vous devez modifier le type et le nom du champ, vous pouvez utiliser la clause MODIFY ou CHANGE dans la commande ALTER.

Par exemple, pour modifier le type du champ c de CHAR(1) à CHAR(10), exécutez la commande suivante :

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

Avec la clause CHANGE, la syntaxe est très différente.Immédiatement après le mot-clé CHANGE se trouve le nom du champ que vous souhaitez modifier, puis spécifiez le nouveau nom et type de champ.Essayez l'exemple suivant :

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 nulles et par défaut

Lorsque vous modifiez un champ, vous pouvez spécifier s'il faut l'inclure uniquement ou s'il faut définir une valeur par défaut.

L'exemple suivant spécifie que le champ j est NOT NULL et que 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 de valeur par défaut, MySQL définira automatiquement le champ sur NULL par défaut.


Modifier la valeur par défaut du champ

Vous pouvez utiliser ALTER pour modifier la valeur par défaut d'un 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 ALTER avec la clause DROP pour supprimer la valeur par défaut d'un champ, comme dans l'exemple suivant :

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:

La modification du type de table de données peut être effectuée à l'aide de la commande ALTER et de la clause TYPE.Essayez l'exemple suivant, où nous changeons le type de la table testalter_tbl en MYISAM :

Remarque:Pour afficher le type de table de données, vous pouvez utiliser l'instruction SHOW TABLE STATUS.

mysql> ALTER TABLE testalter_tbl ENGINE = 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)

Modifier le nom de la table

Si vous devez modifier le nom de la table de données, vous pouvez utiliser la clause RENAME dans l'instruction ALTER TABLE pour le faire.

Essayez l'exemple suivant pour renommer la table de données testalter_tbl en alter_tbl :

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

La commande ALTER peut également être utilisée pour créer et supprimer des index sur les tables MySQL, ce que nous aborderons dans les prochains chapitres.

modifier d'autres utilisations

Modifier le moteur de stockage : modifiez-le en myisam

alter table tableName engine=myisam;

Supprimer la contrainte de clé étrangère : keyName est un alias de clé étrangère

alter table tableName drop foreign key keyName;

La position relative du champ modifié : ici nom1 est le champ à modifier, type1 est le type d'origine du champ, premier et après peuvent être sélectionnés, ce qui devrait être évident, premier est placé en premier et après est placé après le nom2 champ

alter table tableName modify name1 type1 first|after name2;

发表 评论

Votre adresse email ne sera pas publiée. 项 已 用 * 标注

Remonter en haut