View a markdown version of this page

ALTER TABLE - Amazon Aurora DSQL

ALTER TABLE

ALTER TABLE は、テーブルの定義を変更します。

ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] action [, ... ] ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] RENAME [ COLUMN ] column_name TO new_column_name ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] RENAME CONSTRAINT constraint_name TO new_constraint_name ALTER TABLE [ IF EXISTS ] name RENAME TO new_name ALTER TABLE [ IF EXISTS ] name SET SCHEMA new_schema where action is one of: ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type ADD table_constraint_using_index ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...] ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ] OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } and table_constraint_using_index is: [ CONSTRAINT constraint_name ] UNIQUE USING INDEX index_name

ID 列のアクション

SET GENERATED { ALWAYS | BY DEFAULT } / SET sequence_option / RESTART

これらのフォームは、列が ID 列であるかどうかを変更したり、既存の ID 列の生成属性を変更したりします。詳細については、「CREATE TABLE」を参照してください。SET DEFAULT と同様に、これらの形式は後続の INSERT コマンドと UPDATE コマンドの動作にのみ影響します。テーブル内の既存の行が変更されることはありません。

sequence_option は、INCREMENT BY などの ALTER SEQUENCE でサポートされるオプションです。これらのフォームは、既存の ID 列の基盤となるシーケンスを変更します。

DROP IDENTITY [ IF EXISTS ]

このフォームは、列から ID プロパティを削除します。DROP IDENTITY IF EXISTS が指定されていて、列が ID 列でない場合、エラーはスローされません。この場合、代わりに通知が発行されます。

制約アクションを追加する

ADD table_constraint_using_index

このフォームは、既存の一意のインデックスに基づいてテーブルに新しい UNIQUE 制約を追加します。インデックスのすべての列が制約に含まれます。

インデックスは VALID 状態である必要があります。インデックスが現在構築中である場合、そのインデックスを使用して一意の制約を追加することはサポートされていません。

制約名を指定すると、制約名と一致するようにインデックス名が変更されます。指定しない場合、制約はインデックスと同じ名前になります。

このコマンドを実行すると、インデックスは通常の CREATE UNIQUE INDEX ASYNC コマンドで構築した場合と同じ方法で、制約によって「所有」されます。特に、制約を削除すると、インデックスも消えます。