CREATE MATERIALIZED VIEW — 新しいマテリアライズドビューを定義する
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ]table_name
[ (column_name
[, ...] ) ] [ USINGmethod
] [ WITH (storage_parameter
[=value
] [, ... ] ) ] [ TABLESPACEtablespace_name
] ASquery
[ WITH [ NO ] DATA ]
CREATE MATERIALIZED VIEW
は問い合わせからマテリアライズドビューを定義します。
この問い合わせはコマンド発行時にビューにデータを投入する(WITH NO DATA
が使用されていない場合)ために実行され、使用されます。
また将来のREFRESH MATERIALIZED VIEW
の使用で更新されるかもしれません。
CREATE MATERIALIZED VIEW
はCREATE TABLE AS
と似ていますが、必要に応じて後で更新できるように、ビューの初期化時に使用された問い合わせを記憶する点が異なります。
マテリアライズドビューはテーブルと同じ属性を多く持ちますが、一時的なマテリアライズドビューをサポートしていません。
CREATE MATERIALIZED VIEW
には、マテリアライズドビューのために使われるスキーマでのCREATE
権限が必要です。
IF NOT EXISTS
同じ名前のマテリアライズドビューが既に存在する場合にエラーとしません。 この場合、注意が発行されます。 既存のマテリアライズドビューが作成されようとしていたものと類似のものであることは全く保証されないことに注意してください。
table_name
作成するマテリアライズドビューの名前です(スキーマ修飾も可)。 この名前は、同じスキーマ内にある他のリレーション(テーブル、シーケンス、インデックス、ビュー、マテリアライズドビュー、外部テーブル)と異なるものでなければなりません。
column_name
新しいマテリアライズドビューの列の名前です。 列名が提供されていない場合の列名は、問い合わせの出力列名から取られます。
USING method
この省略可能な句は、新しいマテリアライズドビューの内容を保存するのに使うテーブルアクセスメソッドを指定します。メソッドはTABLE
型のアクセスメソッドであることが必要です。
より詳しい情報は第63章を参照してください。
このオプションが指定されなければ、新しいマテリアライズドビューに対してはデフォルトのテーブルアクセスメソッドが選ばれます。
より詳しい情報はdefault_table_access_methodを参照してください。
WITH ( storage_parameter
[= value
] [, ... ] )
この句は、新しいマテリアライズドビューの格納パラメータ(省略可能)を指定します。
詳細についてはCREATE TABLEの文書の格納パラメータを参照してください。
CREATE TABLE
でサポートされるすべてのパラメータはCREATE MATERIALIZED VIEW
でもサポートされます。
詳細についてはCREATE TABLEを参照してください。
TABLESPACE tablespace_name
tablespace_name
はマテリアライズドビューが作成されるテーブル空間の名前です。
指定されていない場合はdefault_tablespaceを参照します。
query
SELECT
、TABLE
またはVALUES
コマンドです。
この問い合わせはセキュリティ限定された操作の中で実行されます。
具体的には一時テーブルを作成する関数の呼び出しは失敗します。
WITH [ NO ] DATA
この句は作成時にマテリアライズドビューにデータを投入するかどうかを指定します。
投入しない場合、マテリアライズドビューはスキャン不可という印が付き、REFRESH MATERIALIZED VIEW
が使用されるまで問い合わせることができません。
CREATE MATERIALIZED VIEW
はPostgreSQLの拡張です。