ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name DROP DEFAULT ALTER VIEW [ IF EXISTS ] name OWNER TO new_owner ALTER VIEW [ IF EXISTS ] name RENAME TO new_name ALTER VIEW [ IF EXISTS ] name 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 [, ... ] )
ALTER VIEWはビューの各種補助属性を変更します。 (ビューを定義する問い合わせを変更したい場合はCREATE OR REPLACE VIEWを使用してください。)
ALTER VIEWを使用するためには、ビューの所有者でなければなりません。 またビューのスキーマを変更するためには、新しいスキーマ上にCREATE権限を持たなければなりません。 さらに所有者を変更するためには、新しく所有者となるロールの直接あるいは間接的なメンバでなければならず、かつ、そのロールはビューのスキーマ上にCREATE権限を持たなければなりません。 (これらの制限は、ビューの削除または再作成によりユーザが実行できないことを、所有者の変更により実行できないようにするためのものです。 しかし、スーパーユーザはすべてのビューの所有者を変更することができます。)
既存のビューの名前(スキーマ修飾可)です。
ビューが存在する場合にエラーとしません。 この場合には注意メッセージが発行されます。
この構文は列のデフォルト値を設定または削除します。 ビューの列のデフォルト値は、ビューに対するルールやトリガが適用される前にビューを対象とした任意のINSERTまたはUPDATEコマンド内に代入されます。 したがってビューのデフォルトは基となるリレーションのデフォルト値よりも優先度が高くなります。
ビューの新しい所有者のユーザ名です。
ビューの新しい名前です。
ビューの新しいスキーマです。
ビューのオプションを設定またはクリアします。 現在、サポートされるオプションは以下の通りです。
ビューのcheck optionを変更します。 値はlocalまたはcascadedのいずれかでなければなりません。
ビューのsecurity-barrier属性を変更します。 値はtrueやfalseのような論理値でなければなりません。
ビュー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 will receive a NULL INSERT INTO a_view(id) VALUES(2); -- ts will receive the current time