ALTER VIEWは、ビューのさまざまな補助プロパティを変更します。
説明
ALTER VIEWは、ビューのさまざまな補助プロパティを変更します。 (ビューの定義クエリを変更する場合は、CREATE OR REPLACE viewを使用します。)
ALTER viewを使用するには、ビューを所有する必要があります。 ビューのスキーマを変更するには、新しいスキーマに対するCREATE権限も必要です。 所有者を変更するには、新しい所有ロールの直接または間接のメンバーである必要があり、そのロールはビューのスキーマに対するCREATE権限を持つ必要があります。 (これらの制限により、所有者を変更しても、ビューを削除して再作成できないことは何もできません。 ただし、スーパーユーザーは、任意のビューの所有権を変更できます。
概要
ALTER VIEW [ IF EXISTS] 名ALTER [ COLUMN ] column_name SET DEFAULT式
ALTER VIEW [ IF EXISTS] 名ALTER [ COLUMN ] column_name DROP DEFAULT
ALTER VIEW [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_USER | SESSION_USER}
ALTER VIEW [ IF EXISTS] 名RENAME TO new_name
ALTER VIEW [ IF EXISTS] 名SET SCHEMA new_schema
ALTER VIEW [ IF EXISTS ] name SET ( view_option_name [= view_option_value] [, ... ] )
ALTER VIEW [ IF EXISTS ] name RESET ( view_option_name [, ... ] ) パラメーター
name: 既存のビューの名前 (スキーマ修飾) 。column_name: 既存の列の名前。new_column_name: 既存の列の新しい名前。IF EXISTS: ビューが存在しない場合は、エラーをスローしないでください。 この場合、通知が発行されます。SET/DROP DEFAULT: これらのフォームは、列のデフォルト値を設定または削除します。 ビュー列の既定値は、ビューをターゲットとするINSERTまたはUPDATEコマンドに代入され、ビューにルールまたはトリガーが適用されます。 したがって、ビューのデフォルトは、基になる関係からのデフォルト値よりも優先されます。new_owner: ビューの新しい所有者のユーザー名。new_name: ビューの新しい名前。new_schema: ビューの新しいスキーマです。SET (view_option_name[=view_option_value] [, ... ] )RESET (view_option_name[, ... ] ): ビューオプションを設定またはリセットします。 現在サポートされているオプションは次のとおりです。check_option(enum): ビューのチェックオプションを変更します。 値はlocalまたはcascadedである必要があります。security_barrier(boolean): ビューのsecurity-barrierプロパティを変更します。 値は、trueまたはfalseなどのブール値である必要があります。
注
歴史的な理由から、ALTER TABLEはビューでも使用できます。ただし、ビューで許可されるALTER TABLEの唯一のバリエーションは、上記のものと同等です。
例
ビューfooをbarに変更するには:
ALTER VIEW foo RENAME TO bar;デフォルトの列値を更新可能なビューにアタッチするには:
CREATE TABLE base_table (id int, ts timestamptz);
CREATE VIEW a_view AS SELECT * FROM base_table;
ALTER VIEW a_view ALTER COLUMN ts SET DEFAULT now();
INSERT INTO base_table(id) VALUES (1); -- tsはNULLを受け取ります
INSERT INTO a_view(id) VALUES (2); -- tsは現在時刻を受け取ります