CREATE MATERIALIZED VIEW)

CREATE MATERIALIZED VIEW コマンドは、基本表の列のサブセットに対する SPM (sorted, projected, materialized) ビューを作成または置換するときに使用します。 これらのタイプのビューはそれぞれ、基本表の列のサブセットを射影し、基本表の列の特定のセットでソートされます。 システムはビューを永続的に保存します。 このビューは、\dm コマンドを発行することによって、表示できます。

構文

マテリアライズ・ビューを作成する場合の構文
CREATE [OR REPLACE] MATERIALIZED VIEW <viewname> AS SELECT <col>[,<col>…]
FROM <table> [ORDER BY <order_col>[,<order_col>…]];

入力

CREATE MATERIALIZED VIEW コマンドの入力は以下のとおりです。

表 1. CREATE MATERIALIZED VIEW の入力
入力 説明
OR REPLACE 既存のマテリアライズ・ビューを置き換えます。 ビューの基本表が何らかの方法で変更された後、またはデータベース名を変更した後、ビューをリビルドするためにこのオプションを使用します。
<viewname> 作成するマテリアライズ・ビューの名前。
<col> このビューを構成する列。 最大 64 列まで指定できます。
<table> ビューの作成元の表。
<order_col> ソートする列。

制約事項

CREATE MATERIALIZED VIEW コマンドには以下の制約があります。
  • FROM 節に指定できる基本表は 1 つだけです。
  • マテリアライズ・ビューの作成時に WHERE 節は使用できません。
  • 選択リストに指定する列は、基本表に存在する必要があります。
  • 選択リストには最低 1 つの列を指定する必要があります。
  • マテリアライズ・ビューに対して 64 個までの列を選択することができます。
  • ORDER BY リストの列は選択リストで指定される必要があります。
  • 外部表、一時表、システム表、クラスター基本表 (CBT) をビューの基本表として指定することはできません。

出力

CREATE MATERIALIZED VIEW コマンドの出力は以下のとおりです。

表 2. CREATE MATERIALIZED VIEW の出力
出力 説明
CREATE MATERIALIZED VIEW コマンドは成功します。
ERROR: Relation 'view' already exists. 指定した名前のビューが既にデータベースに存在しています。

特権

admin ユーザー、またはこのマテリアライズ・ビューが定義されたデータベースかスキーマの所有者であるか、あるいはアカウントが Create Materialized View 特権を持っている必要があります。 OR REPLACE オプションを指定する場合、そのマテリアライズ・ビューまたは Materialized View オブジェクト・クラスに対する Alter 特権を持っている必要があります。

使用法

以下に使用例を示します。
  • マテリアライズ・ビューを作成します。
    MYDB.SCH1(USER)=> CREATE MATERIALIZED VIEW kinds AS SELECT t1 FROM 
    emp ORDER BY name;