HSQLDB - Commande Alter

Chaque fois qu'il est nécessaire de changer le nom d'une table ou d'un champ, de changer l'ordre des champs, de changer le type de données des champs ou toute structure de table, vous pouvez obtenir la même chose en utilisant la commande ALTER.

Exemple

Prenons un exemple qui explique la commande ALTER en utilisant différents scénarios.

Utilisez la requête suivante pour créer une table nommée testalter_tbl avec les champs ' id et name.

//below given query is to create a table testalter_tbl table.
create table testalter_tbl(id INT, name VARCHAR(10));

//below given query is to verify the table structure testalter_tbl.
Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';

Après l'exécution de la requête ci-dessus, vous recevrez la sortie suivante.

+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM |  TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
|   PUBLIC   |TESTALTER_TBL|     ID     |     4     |   INTEGER |     4      |
|   PUBLIC   |TESTALTER_TBL|    NAME    |     12    |   VARCHAR |     10     |
+------------+-------------+------------+-----------+-----------+------------+

Déposer ou ajouter une colonne

Chaque fois que vous souhaitez SUPPRIMER une colonne existante de la table HSQLDB, vous pouvez utiliser la clause DROP avec la commande ALTER.

Utilisez la requête suivante pour supprimer une colonne (name) de la table testalter_tbl.

ALTER TABLE testalter_tbl DROP name;

Après l'exécution réussie de la requête ci-dessus, vous pouvez savoir si le champ de nom est supprimé de la table testalter_tbl à l'aide de la commande suivante.

Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';

Après l'exécution de la commande ci-dessus, vous recevrez la sortie suivante.

+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM |  TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
|  PUBLIC    |TESTALTER_TBL|      ID    |      4    |   INTEGER |     4      |
+------------+-------------+------------+-----------+-----------+------------+

Chaque fois que vous souhaitez ajouter une colonne dans la table HSQLDB, vous pouvez utiliser la clause ADD avec la commande ALTER.

Utilisez la requête suivante pour ajouter une colonne nommée NAME à la table testalter_tbl.

ALTER TABLE testalter_tbl ADD name VARCHAR(10);

Après l'exécution réussie de la requête ci-dessus, vous pouvez savoir si le champ de nom est ajouté à la table testalter_tbl en utilisant la commande suivante.

Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';

Après l'exécution de la requête ci-dessus, vous recevrez la sortie suivante.

+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM |  TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
|  PUBLIC    |TESTALTER_TBL|      ID    |     4     |   INTEGER |     4      |
|  PUBLIC    |TESTALTER_TBL|     NAME   |     12    |   VARCHAR |     10     |
+------------+-------------+------------+-----------+-----------+------------+

Modification d'une définition ou d'un nom de colonne

Chaque fois qu'il est nécessaire de modifier la définition de colonne, utilisez le MODIFY ou CHANGE clause avec la ALTER commander.

Prenons un exemple qui expliquera comment utiliser la clause CHANGE. La tabletestalter_tblcontient deux champs - id et name - ayant respectivement les types de données int et varchar. Essayons maintenant de changer le type de données de id de INT à BIGINT. Voici la requête pour effectuer le changement.

ALTER TABLE testalter_tbl CHANGE id id BIGINT;

Après l'exécution réussie de la requête ci-dessus, la structure de la table peut être vérifiée à l'aide de la commande suivante.

Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';

Après l'exécution de la commande ci-dessus, vous recevrez la sortie suivante.

+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM |  TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
|  PUBLIC    |TESTALTER_TBL|      ID    |     4     |   BIGINT  |     4      |
|  PUBLIC    |TESTALTER_TBL|     NAME   |     12    |   VARCHAR |     10     |
+------------+-------------+------------+-----------+-----------+------------+

Essayons maintenant d'augmenter la taille d'une colonne NAME de 10 à 20 dans le testalter_tbltable. Voici la requête pour y parvenir en utilisant la clause MODIFY avec la commande ALTER.

ALTER TABLE testalter_tbl MODIFY name VARCHAR(20);

Après l'exécution réussie de la requête ci-dessus, la structure de la table peut être vérifiée à l'aide de la commande suivante.

Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';

Après l'exécution de la commande ci-dessus, vous recevrez la sortie suivante.

+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM |  TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
|  PUBLIC    |TESTALTER_TBL|    ID      |      4    |    BIGINT |     4      |
|  PUBLIC    |TESTALTER_TBL|    NAME    |     12    |   VARCHAR |    20      |
+------------+-------------+------------+-----------+-----------+------------+