H2-database-alter

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

H2データベース-変更

ALTERは、 alter コマンドに異なる句を追加することにより、テーブル構造を変更するために使用されるコマンドです。 シナリオに基づいて、alterコマンドにそれぞれの句を追加する必要があります。 この章では、alterコマンドのさまざまなシナリオについて説明します。

変更テーブルの追加

Alter Table Addは、それぞれのデータ型とともに新しい列をテーブルに追加するために使用されるコマンドです。 このコマンドは、この接続でトランザクションをコミットします。

構文

Alter Table Addコマンドの一般的な構文は次のとおりです。

ALTER TABLE [ IF EXISTS ] tableName ADD [ COLUMN ]
{ [ IF NOT EXISTS ] columnDefinition [ { BEFORE | AFTER } columnName ]
   | ( { columnDefinition } [,...] ) }

この例では、新しい列 start_date をテーブル tutorials_tbl に追加します。 start_dateのデータ型は日付です。 以下は、新しい列を追加するクエリです。

ALTER TABLE tutorials_tbl ADD start_date DATE;

上記のクエリは、次の出力を生成します。

(6) rows effected

テーブルの変更制約の追加

テーブル追加制約の変更は、主キー、外部キー、非ヌルなどのさまざまな制約をテーブルに追加するために使用されるコマンドです。

必要なインデックスは、まだ存在しない場合は自動的に作成されます。 一意制約のチェックを無効にすることはできません。 このコマンドは、この接続で開いているトランザクションをコミットします。

構文

Alter table add constraintコマンドの一般的な構文は次のとおりです。

ALTER TABLE [ IF EXISTS ] tableName ADD constraint [ CHECK | NOCHECK ]

この例では、次のクエリを使用して、テーブル tutorials_tbl の列IDに主キー制約*(tutorials_tbl_pk)*を追加します。

ALTER TABLE tutorials_tbl ADD CONSTRAINT tutorials_tbl_pk PRIMARYKEY(id);

上記のクエリは、次の出力を生成します。

(6) row (s) effected

テーブル名の変更制約の変更

このコマンドは、特定の関係テーブルの制約名を変更するために使用されます。 このコマンドは、この接続で開いているトランザクションをコミットします。

構文

以下は、テーブル変更制約の変更コマンドの一般的な構文です。

ALTER TABLE [ IF EXISTS ] tableName RENAME oldConstraintName TO newConstraintName

この構文を使用している間、古い制約名がそれぞれの列に存在することを確認してください。

この例では、テーブル tutorials_tbl の主キー制約名を tutorials_tbl_pk から tutorials_tbl_pk_constraint に変更します。 以下はそのためのクエリです。

ALTER TABLE tutorials_tbl RENAME CONSTRAINT
tutorials_tbl_pk TO tutorials_tbl_pk_constraint;

上記のクエリは、次の出力を生成します。

(1) row (s) effected

表の変更列の変更

このコマンドは、特定のテーブルの列の構造とプロパティを変更するために使用されます。 プロパティの変更とは、列のデータ型の変更、列の名前の変更、ID値の変更、または選択性の変更を意味します。

構文

以下は、Alter Table Alter Columnコマンドの一般的な構文です。

ALTER TABLE [ IF EXISTS ] tableName ALTER COLUMN columnName
{ { dataType [ DEFAULT expression ] [ [ NOT ] NULL ] [ AUTO_INCREMENT | IDENTITY ] }
| { RENAME TO name }
| { RESTART WITH long }
| { SELECTIVITY int }
| { SET DEFAULT expression }
| { SET NULL }
| { SET NOT NULL } }

上記の構文では-

  • RESTART -コマンドは自動インクリメント列の次の値を変更します。
  • SELECTIVITY -コマンドは列の選択度(1〜100)を設定します。 選択性の値に基づいて、列の値を画像化できます。
  • SET DEFAULT -列のデフォルト値を変更します。
  • SET NULL -NULLを許可するように列を設定します。
  • SET NOT NULL -NOT NULLを許可するように列を設定します。

この例では、次のクエリを使用して、テーブルの列の名前を tutorials_tbl から Title から Tutorial_Title に変更します。

ALTER TABLE tutorials_tbl ALTER COLUMN title RENAME TO tutorial_title;

上記のクエリは、次の出力を生成します。

(0) row(s) effected

同様に、ALTERコマンドを使用してさまざまなシナリオを実行できます。