HSQLDB-Alterコマンド

テーブルまたはフィールドの名前の変更、フィールドの順序の変更、フィールドのデータ型の変更、または任意のテーブル構造が必要な場合はいつでも、ALTERコマンドを使用して同じことを実現できます。

さまざまなシナリオを使用してALTERコマンドを説明する例を考えてみましょう。

次のクエリを使用して、という名前のテーブルを作成します testalter_tbl フィールドで」 id そして 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';

上記のクエリを実行すると、次の出力が表示されます。

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

列の削除または追加

HSQLDBテーブルから既存の列をDROPする場合はいつでも、ALTERコマンドとともにDROP句を使用できます。

次のクエリを使用して列を削除します(name)テーブルtestalter_tblから。

ALTER TABLE testalter_tbl DROP name;

上記のクエリが正常に実行された後、次のコマンドを使用して、名前フィールドがテーブルtestalter_tblから削除されているかどうかを確認できます。

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

上記のコマンドを実行すると、次の出力が表示されます。

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

HSQLDBテーブルに列を追加するときはいつでも、ALTERコマンドと一緒にADD句を使用できます。

次のクエリを使用して、という名前の列を追加します NAME テーブルに testalter_tbl

ALTER TABLE testalter_tbl ADD name VARCHAR(10);

上記のクエリが正常に実行された後、名前フィールドがテーブルに追加されているかどうかを知ることができます testalter_tbl 次のコマンドを使用します。

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

上記のクエリを実行すると、次の出力が表示されます。

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

列の定義または名前の変更

列定義を変更する必要がある場合は常に、 MODIFY または CHANGE と一緒に条項 ALTER コマンド。

CHANGE句の使用方法を説明する例を考えてみましょう。テーブルtestalter_tblデータ型がそれぞれintとvarcharの2つのフィールド(idとname)が含まれています。ここで、idのデータ型をINTからBIGINTに変更してみましょう。以下は、変更を加えるためのクエリです。

ALTER TABLE testalter_tbl CHANGE id id BIGINT;

上記のクエリが正常に実行された後、次のコマンドを使用してテーブル構造を確認できます。

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

上記のコマンドを実行すると、次の出力が表示されます。

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

次に、列NAMEのサイズを10から20に増やしてみましょう。 testalter_tblテーブル。以下は、ALTERコマンドとともにMODIFY句を使用してこれを実現するためのクエリです。

ALTER TABLE testalter_tbl MODIFY name VARCHAR(20);

上記のクエリが正常に実行された後、次のコマンドを使用してテーブル構造を確認できます。

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

上記のコマンドを実行すると、次の出力が表示されます。

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