H2-database-alter
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コマンドを使用してさまざまなシナリオを実行できます。