Hsqldb-alter-command

提供:Dev Guides
移動先:案内検索

HSQLDB-変更コマンド

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

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

次のクエリを使用して、フィールドの idname を含む testalter_tbl という名前のテーブルを作成します。

//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する場合は、DROP句をALTERコマンドと一緒に使用できます。

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

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

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

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