HSQLDB - Alterar Comando

Sempre que houver necessidade de alterar o nome de uma tabela ou de um campo, alterar a ordem dos campos, alterar o tipo de dados dos campos ou qualquer estrutura da tabela, pode-se fazer o mesmo com o comando ALTER.

Exemplo

Vamos considerar um exemplo que explica o comando ALTER usando diferentes cenários.

Use a seguinte consulta para criar uma tabela chamada testalter_tbl com os campos ' 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';

Após a execução da consulta acima, você receberá a seguinte saída.

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

Eliminando ou Adicionando uma Coluna

Sempre que quiser DROP em uma coluna existente da tabela HSQLDB, você pode usar a cláusula DROP junto com o comando ALTER.

Use a seguinte consulta para eliminar uma coluna (name) da tabela testalter_tbl.

ALTER TABLE testalter_tbl DROP name;

Após a execução bem-sucedida da consulta acima, você pode saber se o campo de nome foi eliminado da tabela testalter_tbl usando o seguinte comando.

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

Após a execução do comando acima, você receberá a seguinte saída.

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

Sempre que quiser adicionar qualquer coluna à tabela HSQLDB, você pode usar a cláusula ADD junto com o comando ALTER.

Use a seguinte consulta para adicionar uma coluna chamada NAME para a mesa testalter_tbl.

ALTER TABLE testalter_tbl ADD name VARCHAR(10);

Após a execução bem-sucedida da consulta acima, você pode saber se o campo de nome foi adicionado à tabela testalter_tbl usando o seguinte comando.

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

Após a execução da consulta acima, você receberá a seguinte saída.

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

Alterar uma definição ou nome de coluna

Sempre que houver um requisito de alterar a definição da coluna, use o MODIFY ou CHANGE cláusula junto com a ALTER comando.

Vamos considerar um exemplo que explicará como usar a cláusula CHANGE. A mesatestalter_tblcontém dois campos - id e nome - tendo tipos de dados int e varchar respectivamente. Agora vamos tentar mudar o tipo de dados de id de INT para BIGINT. A seguir está a consulta para fazer a mudança.

ALTER TABLE testalter_tbl CHANGE id id BIGINT;

Após a execução bem-sucedida da consulta acima, a estrutura da tabela pode ser verificada usando o seguinte comando.

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

Após a execução do comando acima, você receberá a seguinte saída.

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

Agora vamos tentar aumentar o tamanho da coluna NOME de 10 para 20 no testalter_tblmesa. A seguir está a consulta para conseguir isso usando a cláusula MODIFY junto com o comando ALTER.

ALTER TABLE testalter_tbl MODIFY name VARCHAR(20);

Após a execução bem-sucedida da consulta acima, a estrutura da tabela pode ser verificada usando o seguinte comando.

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

Após a execução do comando acima, você receberá a seguinte saída.

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