HSQLDB - Zmień polecenie

Zawsze, gdy zachodzi potrzeba zmiany nazwy tabeli lub pola, zmiany kolejności pól, zmiany typu danych pól lub dowolnej struktury tabeli, można to osiągnąć za pomocą polecenia ALTER.

Przykład

Rozważmy przykład, który wyjaśnia polecenie ALTER przy użyciu różnych scenariuszy.

Użyj następującego zapytania, aby utworzyć tabelę o nazwie testalter_tbl z polami id i 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';

Po wykonaniu powyższego zapytania otrzymasz następujące dane wyjściowe.

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

Upuszczanie lub dodawanie kolumny

Ilekroć chcesz DROP istniejącej kolumny z tabeli HSQLDB, możesz użyć klauzuli DROP wraz z poleceniem ALTER.

Użyj następującego zapytania, aby upuścić kolumnę (name) z tabeli testalter_tbl.

ALTER TABLE testalter_tbl DROP name;

Po pomyślnym wykonaniu powyższego zapytania możesz dowiedzieć się, czy pole name zostało usunięte z tabeli testalter_tbl za pomocą następującego polecenia.

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

Po wykonaniu powyższego polecenia otrzymasz następujące dane wyjściowe.

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

Ilekroć chcesz dodać dowolną kolumnę do tabeli HSQLDB, możesz użyć klauzuli ADD wraz z poleceniem ALTER.

Użyj następującego zapytania, aby dodać kolumnę o nazwie NAME na stół testalter_tbl.

ALTER TABLE testalter_tbl ADD name VARCHAR(10);

Po pomyślnym wykonaniu powyższego zapytania możesz dowiedzieć się, czy pole nazwy zostało dodane do tabeli testalter_tbl za pomocą następującego polecenia.

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

Po wykonaniu powyższego zapytania otrzymasz następujące dane wyjściowe.

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

Zmiana definicji lub nazwy kolumny

Ilekroć istnieje potrzeba zmiany definicji kolumny, użyj rozszerzenia MODIFY lub CHANGE klauzula wraz z ALTER Komenda.

Rozważmy przykład, który wyjaśni, jak używać klauzuli CHANGE. Stółtestalter_tblzawiera dwa pola - id i name - mające odpowiednio typy danych int i varchar. Teraz spróbujmy zmienić typ danych id z INT na BIGINT. Poniżej znajduje się zapytanie do wprowadzenia zmiany.

ALTER TABLE testalter_tbl CHANGE id id BIGINT;

Po pomyślnym wykonaniu powyższego zapytania strukturę tabeli można zweryfikować za pomocą następującego polecenia.

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

Po wykonaniu powyższego polecenia otrzymasz następujące dane wyjściowe.

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

Teraz spróbujmy zwiększyć rozmiar kolumny NAME z 10 do 20 w testalter_tblstół. Poniżej znajduje się zapytanie do osiągnięcia tego celu za pomocą klauzuli MODIFY wraz z poleceniem ALTER.

ALTER TABLE testalter_tbl MODIFY name VARCHAR(20);

Po pomyślnym wykonaniu powyższego zapytania strukturę tabeli można zweryfikować za pomocą następującego polecenia.

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

Po wykonaniu powyższego polecenia otrzymasz następujące dane wyjściowe.

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