HSQLDB - Alter Command

Ogni volta che è necessario modificare il nome di una tabella o di un campo, modificare l'ordine dei campi, modificare il tipo di dati dei campi o qualsiasi struttura di tabella, è possibile ottenere lo stesso risultato utilizzando il comando ALTER.

Esempio

Consideriamo un esempio che spiega il comando ALTER utilizzando diversi scenari.

Utilizza la seguente query per creare una tabella denominata testalter_tbl con i campi ' id e 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';

Dopo l'esecuzione della query precedente, riceverai il seguente output.

+------------+-------------+------------+-----------+-----------+------------+
|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     |
+------------+-------------+------------+-----------+-----------+------------+

Eliminazione o aggiunta di una colonna

Ogni volta che si desidera DROP una colonna esistente dalla tabella HSQLDB, è possibile utilizzare la clausola DROP insieme al comando ALTER.

Utilizzare la seguente query per eliminare una colonna (name) dalla tabella testalter_tbl.

ALTER TABLE testalter_tbl DROP name;

Dopo aver eseguito con successo la query di cui sopra, puoi sapere se il campo del nome è stato eliminato dalla tabella testalter_tbl utilizzando il seguente comando.

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

Dopo l'esecuzione del comando precedente, riceverai il seguente output.

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

Ogni volta che si desidera aggiungere una colonna alla tabella HSQLDB, è possibile utilizzare la clausola ADD insieme al comando ALTER.

Utilizza la seguente query per aggiungere una colonna denominata NAME al tavolo testalter_tbl.

ALTER TABLE testalter_tbl ADD name VARCHAR(10);

Dopo aver eseguito con successo la query sopra, puoi sapere se il campo del nome è stato aggiunto alla tabella testalter_tbl utilizzando il seguente comando.

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

Dopo l'esecuzione della query precedente, riceverai il seguente output.

+------------+-------------+------------+-----------+-----------+------------+
|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     |
+------------+-------------+------------+-----------+-----------+------------+

Modifica della definizione o del nome di una colonna

Ogni volta che è necessario modificare la definizione della colonna, utilizzare il MODIFY o CHANGE clausola insieme alla ALTER comando.

Consideriamo un esempio che spiegherà come utilizzare la clausola CHANGE. La tavolatestalter_tblcontiene due campi, id e nome, con tipi di dati rispettivamente int e varchar. Ora proviamo a cambiare il tipo di dati di id da INT a BIGINT. Di seguito è riportata la query per apportare la modifica.

ALTER TABLE testalter_tbl CHANGE id id BIGINT;

Dopo aver eseguito con successo la query precedente, la struttura della tabella può essere verificata utilizzando il seguente comando.

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

Dopo l'esecuzione del comando precedente, riceverai il seguente output.

+------------+-------------+------------+-----------+-----------+------------+
|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     |
+------------+-------------+------------+-----------+-----------+------------+

Ora proviamo ad aumentare la dimensione di una colonna NOME da 10 a 20 nel file testalter_tbltavolo. Di seguito è riportata la query per ottenere ciò utilizzando la clausola MODIFY insieme al comando ALTER.

ALTER TABLE testalter_tbl MODIFY name VARCHAR(20);

Dopo aver eseguito con successo la query precedente, la struttura della tabella può essere verificata utilizzando il seguente comando.

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

Dopo l'esecuzione del comando precedente, riceverai il seguente output.

+------------+-------------+------------+-----------+-----------+------------+
|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      |
+------------+-------------+------------+-----------+-----------+------------+