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 コマンドの入力は以下のとおりです。
| 入力 | 説明 |
|---|---|
| OR REPLACE | 既存のマテリアライズ・ビューを置き換えます。 ビューの基本表が何らかの方法で変更された後、またはデータベース名を変更した後、ビューをリビルドするためにこのオプションを使用します。 |
| <viewname> | 作成するマテリアライズ・ビューの名前。 |
| <col> | このビューを構成する列。 最大 64 列まで指定できます。 |
| <table> | ビューの作成元の表。 |
| <order_col> | ソートする列。 |
制約事項
- FROM 節に指定できる基本表は 1 つだけです。
- マテリアライズ・ビューの作成時に WHERE 節は使用できません。
- 選択リストに指定する列は、基本表に存在する必要があります。
- 選択リストには最低 1 つの列を指定する必要があります。
- マテリアライズ・ビューに対して 64 個までの列を選択することができます。
- ORDER BY リストの列は選択リストで指定される必要があります。
- 外部表、一時表、システム表、クラスター基本表 (CBT) をビューの基本表として指定することはできません。
出力
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;