無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

ALTER VIEW

名前

ALTER VIEW -- ビュー定義を変更する

概要

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 権限を持たなければなりません。 (これらの制限は、ビューの削除または再作成によりユーザが実行できないことを、所有者の変更により実行されないことを確実にするためのものです。 しかし、スーパーユーザはすべてのビューの所有者を変更することができます。)

パラメータ

name

既存のビューの名前(スキーマ修飾可)です。

IF EXISTS

ビューが存在する場合にエラーとしません。 この場合には注意メッセージが発行されます。

SET / DROP DEFAULT

この構文は列のデフォルト値を設定または削除します。 ビューの列のデフォルト値は、ビューに対するルールやトリガが適用される前にビューを対象とした任意の INSERT または UPDATE コマンド内に代入されます。 したがってビューのデフォルトは基となるリレーションのデフォルト値よりも優先度が高くなります。

new_owner

ビューの新しい所有者のユーザ名です。

new_name

ビューの新しい名前です。

new_schema

ビューの新しいスキーマです。

view_option_name

設定または再設定するビューオプションの名前です。

view_option_value

ビューオプションの新しい値です。

注釈

歴史的な理由により、 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 will receive a NULL
INSERT INTO a_view(id) VALUES(2);  -- ts will receive the current time

互換性

ALTER VIEW は標準SQLに対する PostgreSQL の拡張です。

関連項目

CREATE VIEW , DROP VIEW

powered by SEO.CUG.NET