HSQLDB - Alterar comando

Siempre que sea necesario cambiar el nombre de una tabla o un campo, cambiar el orden de los campos, cambiar el tipo de datos de los campos o cualquier estructura de la tabla, puede lograr lo mismo usando el comando ALTER.

Ejemplo

Consideremos un ejemplo que explica el comando ALTER utilizando diferentes escenarios.

Utilice la siguiente consulta para crear una tabla llamada testalter_tbl con los campos ' id y 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';

Después de la ejecución de la consulta anterior, recibirá el siguiente resultado.

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

Quitar o agregar una columna

Siempre que desee DROP una columna existente de la tabla HSQLDB, puede usar la cláusula DROP junto con el comando ALTER.

Utilice la siguiente consulta para quitar una columna (name) de la tabla testalter_tbl.

ALTER TABLE testalter_tbl DROP name;

Después de la ejecución exitosa de la consulta anterior, puede saber si el campo de nombre se elimina de la tabla testalter_tbl usando el siguiente comando.

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

Después de la ejecución del comando anterior, recibirá el siguiente resultado.

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

Siempre que desee agregar cualquier columna a la tabla HSQLDB, puede usar la cláusula ADD junto con el comando ALTER.

Use la siguiente consulta para agregar una columna llamada NAME a la mesa testalter_tbl.

ALTER TABLE testalter_tbl ADD name VARCHAR(10);

Después de la ejecución exitosa de la consulta anterior, puede saber si el campo de nombre se agrega a la tabla testalter_tbl usando el siguiente comando.

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

Después de la ejecución de la consulta anterior, recibirá el siguiente resultado.

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

Cambiar la definición o el nombre de una columna

Siempre que exista el requisito de cambiar la definición de columna, utilice el MODIFY o CHANGE cláusula junto con la ALTER mando.

Consideremos un ejemplo que explicará cómo usar la cláusula CHANGE. La mesatestalter_tblcontiene dos campos, id y nombre, con tipos de datos int y varchar respectivamente. Ahora intentemos cambiar el tipo de datos de id de INT a BIGINT. A continuación se muestra la consulta para realizar el cambio.

ALTER TABLE testalter_tbl CHANGE id id BIGINT;

Después de la ejecución exitosa de la consulta anterior, la estructura de la tabla se puede verificar usando el siguiente comando.

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

Después de la ejecución del comando anterior, recibirá el siguiente resultado.

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

Ahora intentemos aumentar el tamaño de una columna NAME de 10 a 20 en el testalter_tblmesa. A continuación se muestra la consulta para lograr esto usando la cláusula MODIFY junto con el comando ALTER.

ALTER TABLE testalter_tbl MODIFY name VARCHAR(20);

Después de la ejecución exitosa de la consulta anterior, la estructura de la tabla se puede verificar usando el siguiente comando.

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

Después de la ejecución del comando anterior, recibirá el siguiente resultado.

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