HSQLDB - Befehl ändern

Wenn Sie den Namen einer Tabelle oder eines Felds ändern, die Reihenfolge der Felder ändern, den Datentyp der Felder oder eine beliebige Tabellenstruktur ändern müssen, können Sie dies mit dem Befehl ALTER erreichen.

Beispiel

Betrachten wir ein Beispiel, in dem der Befehl ALTER anhand verschiedener Szenarien erläutert wird.

Verwenden Sie die folgende Abfrage, um eine Tabelle mit dem Namen zu erstellen testalter_tbl mit den Feldern ' id und 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';

Nach Ausführung der obigen Abfrage erhalten Sie die folgende Ausgabe.

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

Löschen oder Hinzufügen einer Spalte

Wenn Sie eine vorhandene Spalte aus der HSQLDB-Tabelle DROPEN möchten, können Sie die DROP-Klausel zusammen mit dem Befehl ALTER verwenden.

Verwenden Sie die folgende Abfrage, um eine Spalte zu löschen (name) aus der Tabelle testalter_tbl.

ALTER TABLE testalter_tbl DROP name;

Nach erfolgreicher Ausführung der obigen Abfrage können Sie mit dem folgenden Befehl feststellen, ob das Namensfeld aus der Tabelle testalter_tbl entfernt wurde.

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

Nach Ausführung des obigen Befehls erhalten Sie die folgende Ausgabe.

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

Wenn Sie der HSQLDB-Tabelle eine Spalte hinzufügen möchten, können Sie die ADD-Klausel zusammen mit dem Befehl ALTER verwenden.

Verwenden Sie die folgende Abfrage, um eine Spalte mit dem Namen hinzuzufügen NAME an den Tisch testalter_tbl.

ALTER TABLE testalter_tbl ADD name VARCHAR(10);

Nach erfolgreicher Ausführung der obigen Abfrage können Sie feststellen, ob das Namensfeld zur Tabelle hinzugefügt wurde testalter_tbl mit dem folgenden Befehl.

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

Nach Ausführung der obigen Abfrage erhalten Sie die folgende Ausgabe.

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

Ändern einer Spaltendefinition oder eines Spaltennamens

Verwenden Sie die Option, wenn die Spaltendefinition geändert werden muss MODIFY oder CHANGE Klausel zusammen mit der ALTER Befehl.

Betrachten wir ein Beispiel, in dem die Verwendung der CHANGE-Klausel erläutert wird. Der Tischtestalter_tblenthält zwei Felder - id und name - mit den Datentypen int und varchar. Versuchen wir nun, den Datentyp der ID von INT in BIGINT zu ändern. Es folgt die Abfrage, um die Änderung vorzunehmen.

ALTER TABLE testalter_tbl CHANGE id id BIGINT;

Nach erfolgreicher Ausführung der obigen Abfrage kann die Tabellenstruktur mit dem folgenden Befehl überprüft werden.

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

Nach Ausführung des obigen Befehls erhalten Sie die folgende Ausgabe.

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

Versuchen wir nun, die Größe eines Spaltennamens von 10 auf 20 im zu erhöhen testalter_tblTabelle. Es folgt die Abfrage, um dies mithilfe der MODIFY-Klausel zusammen mit dem Befehl ALTER zu erreichen.

ALTER TABLE testalter_tbl MODIFY name VARCHAR(20);

Nach erfolgreicher Ausführung der obigen Abfrage kann die Tabellenstruktur mit dem folgenden Befehl überprüft werden.

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

Nach Ausführung des obigen Befehls erhalten Sie die folgende Ausgabe.

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