バージョンごとのドキュメント一覧

ALTER VIEW

ALTER VIEW <refpurpose>change the definition of a view</refpurpose> — ビュー定義を変更する

概要

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 | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER VIEW [ IF EXISTS ] name RENAME [ COLUMN ] column_name TO new_column_name
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 [, ... ] )

説明

<title>Description</title>

<command>ALTER VIEW</command> changes various auxiliary properties of a view. (If you want to modify the view's defining query, use <command>CREATE OR REPLACE VIEW</command>.) ALTER VIEWはビューの各種補助属性を変更します。 (ビューを定義する問い合わせを変更したい場合はCREATE OR REPLACE VIEWを使用してください。)

You must own the view to use <command>ALTER VIEW</command>. To change a view's schema, you must also have <literal>CREATE</literal> privilege on the new schema. To alter the owner, you must be able to <literal>SET ROLE</literal> to the new owning role, and that role must have <literal>CREATE</literal> privilege on the view's schema. (These restrictions enforce that altering the owner doesn't do anything you couldn't do by dropping and recreating the view. However, a superuser can alter ownership of any view anyway.) ALTER VIEWを使用するためには、ビューの所有者でなければなりません。 またビューのスキーマを変更するためには、新しいスキーマ上にCREATE権限を持たなければなりません。 所有者を変更するには、新しい所有者ロールに対してSET ROLEができなければなりません。また、そのロールはビューのスキーマに対してCREATE権限を持たなければなりません。 (これらの制限は、ビューの削除および再作成によりユーザが実行できないことを、所有者の変更により実行できないようにするためのものです。 しかし、スーパーユーザはすべてのビューの所有者を変更することができます。)

パラメータ

<title>Parameters</title>
name

The name (optionally schema-qualified) of an existing view. 既存のビューの名前(スキーマ修飾可)です。

column_name

Name of an existing column. 既存の列の名前です。

new_column_name

New name for an existing column. 既存の列に対する新しい名前です。

IF EXISTS

Do not throw an error if the view does not exist. A notice is issued in this case. ビューが存在する場合にエラーとしません。 この場合には注意メッセージが発行されます。

SET/DROP DEFAULT

These forms set or remove the default value for a column. A view column's default value is substituted into any <command>INSERT</command> or <command>UPDATE</command> command whose target is the view, before applying any rules or triggers for the view. The view's default will therefore take precedence over any default values from underlying relations. この構文は列のデフォルト値を設定または削除します。 ビューの列のデフォルト値は、ビューに対するルールやトリガが適用される前にビューを対象とした任意のINSERTまたはUPDATEコマンド内に代入されます。 したがってビューのデフォルトは基となるリレーションのデフォルト値よりも優先度が高くなります。

new_owner

The user name of the new owner of the view. ビューの新しい所有者のユーザ名です。

new_name

The new name for the view. ビューの新しい名前です。

new_schema

The new schema for the view. ビューの新しいスキーマです。

SET ( view_option_name [= view_option_value] [, ... ] )
RESET ( view_option_name [, ... ] )

Sets or resets a view option. Currently supported options are: ビューのオプションを設定またはクリアします。 現在、サポートされるオプションは以下の通りです。

check_option (enum)

Changes the check option of the view. The value must be <literal>local</literal> or <literal>cascaded</literal>. ビューのcheck optionを変更します。 値はlocalまたはcascadedのいずれかでなければなりません。

security_barrier (boolean)

Changes the security-barrier property of the view. The value must be a Boolean value, such as <literal>true</literal> or <literal>false</literal>. ビューのsecurity-barrier属性を変更します。 値はtruefalseのような論理値でなければなりません。

security_invoker (boolean)

Changes the security-invoker property of the view. The value must be a Boolean value, such as <literal>true</literal> or <literal>false</literal>. ビューのsecurity-invoker属性を変更します。 値はtruefalseのような論理値でなければなりません。

注釈

<title>Notes</title>

For historical reasons, <command>ALTER TABLE</command> can be used with views too; but the only variants of <command>ALTER TABLE</command> that are allowed with views are equivalent to the ones shown above. 歴史的な理由により、ALTER TABLEをビューに対して使用することができます。 ただし、使用可能な構文は上記のビューに対して許される構文に対応するALTER TABLEの構文のみです。

<title>Examples</title>

To rename the view <literal>foo</literal> to <literal>bar</literal>: ビューfooの名前をbarに変更します。

ALTER VIEW foo RENAME TO bar;

To attach a default column value to an updatable view: 更新可能ビューにデフォルトの列値を付与します。

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

互換性

<title>Compatibility</title>

<command>ALTER VIEW</command> is a <productname>PostgreSQL</productname> extension of the SQL standard. ALTER VIEWは標準SQLに対するPostgreSQLの拡張です。

関連項目

<title>See Also</title> CREATE VIEW, DROP VIEW