すべてのプロダクト
Search
ドキュメントセンター

PolarDB:アルタービュー

最終更新日:May 30, 2024

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は現在時刻
を受け取ります