CREATE MATERIALIZED VIEW — 新しいマテリアライズドビューを定義する
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ]table_name
[ (column_name
[, ...] ) ] [ 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
と似ていますが、必要に応じて後で更新できるように、ビューの初期化時に使用された問い合わせを記憶する点が異なります。
マテリアライズドビューはテーブルと同じ属性を多く持ちますが、一時的なマテリアライズドビューやOIDの自動生成をサポートしていません。
IF NOT EXISTS
同じ名前のマテリアライズドビューが既に存在する場合にエラーとしません。 この場合、注意が発行されます。 既存のマテリアライズドビューが作成されようとしていたものと類似のものであることは全く保証されないことに注意してください。
table_name
作成するマテリアライズドビューの名前(スキーマ修飾可)です。
column_name
新しいマテリアライズドビューの列の名前です。 列名が提供されていない場合の列名は、問い合わせの出力列名から取られます。
WITH ( storage_parameter
[= value
] [, ... ] )
この句は、新しいマテリアライズドビューの格納パラメータ(省略可能)を指定します。
省略については格納パラメータを参照してください。
CREATE TABLE
でサポートされる、OIDS
以外のすべてのパラメータは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の拡張です。