具体化されたビューを作成します。
構文
CREATE MATERIALIZED VIEW name [build_clause][create_mv_refresh] AS subquery
build_clause
は次のとおりです。
BUILD {IMMEDIATE | DEFERRED}
create_mv_refresh
は次のとおりです。
REFRESH [COMPLETE] [ON DEMAND]
説明
CREATE MATERIALIZED VIEW は、ビューがクエリで参照されるたびに更新されないクエリのビューを定義します。 デフォルトでは、ビューの作成時にビューにデータが入力されます。 BUILD DEFERRED キーワードを含めると、データの入力を遅らせることができます。
具体化されたビューはスキーマで修飾できます。 CREATE MATERIALIZED VIEW コマンドの実行時にスキーマ名を指定すると、指定したスキーマにビューが作成されます。 ビュー名は、同じスキーマ内の他のすべてのビュー、テーブル、シーケンス、インデックスの名前とは異なる名前である必要があります。
ビューで参照されるテーブルへのアクセスは、ビューの所有者の権限によって決定されます。 ビューのユーザーは、ビューで使用されるすべての関数を呼び出す権限を持っている必要があります。
Postgres の REFRESH MATERIALIZED VIEW
コマンドの詳細については、『PostgreSQL ドキュメント』をご参照ください。
パラメーター
パラメーター | 説明 |
---|---|
name | 作成するビューの名前。 名前はスキーマで修飾できます。 |
subquery | ビューの内容を指定する SELECT 文。 有効なクエリの詳細については、 SELECT コマンドをご参照ください。 |
build_clause | build_clause を含めて、ビューにデータが入力されるタイミングを指定します。 BUILD IMMEDIATE または BUILD DEFERRED を指定できます。
|
create_mv_refresh | 具体化されたビューのコンテンツがいつ更新されるかを指定するには、create_mv_refresh 句を含めます。 REFRESH キーワードの後に COMPLETE
または ON DEMAND、あるいはその両方を指定します。
|
例
次の SQL 文は、dept_30 という名前の具体化されたビューを作成します。
CREATE MATERIALIZED VIEW dept_30 BUILD IMMEDIATE AS SELECT * FROM emp WHERE deptno = 30;
ビューには、emp テーブルから取得した、部門 30 で働くすべての従業員に関する情報が含まれます。