ALTER VIEW <refpurpose>change the definition of a view</refpurpose> — ビュー定義を変更する
ALTER VIEW [ IF EXISTS ]name
ALTER [ COLUMN ]column_name
SET DEFAULTexpression
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
TOnew_column_name
ALTER VIEW [ IF EXISTS ]name
RENAME TOnew_name
ALTER VIEW [ IF EXISTS ]name
SET SCHEMAnew_schema
ALTER VIEW [ IF EXISTS ]name
SET (view_option_name
[=view_option_value
] [, ... ] ) ALTER VIEW [ IF EXISTS ]name
RESET (view_option_name
[, ... ] )
<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
権限を持たなければなりません。
(これらの制限は、ビューの削除および再作成によりユーザが実行できないことを、所有者の変更により実行できないようにするためのものです。
しかし、スーパーユーザはすべてのビューの所有者を変更することができます。)
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属性を変更します。
値はtrue
やfalse
のような論理値でなければなりません。
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属性を変更します。
値はtrue
やfalse
のような論理値でなければなりません。
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
の構文のみです。
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
<command>ALTER VIEW</command> is a <productname>PostgreSQL</productname>
extension of the SQL standard.
ALTER VIEW
は標準SQLに対するPostgreSQLの拡張です。