CREATE MATERIALIZED VIEW <refpurpose>define a new materialized view</refpurpose> — 新しいマテリアライズドビューを定義する
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ]table_name
[ (column_name
[, ...] ) ] [ USINGmethod
] [ WITH (storage_parameter
[=value
] [, ... ] ) ] [ TABLESPACEtablespace_name
] ASquery
[ WITH [ NO ] DATA ]
<command>CREATE MATERIALIZED VIEW</command> defines a materialized view of
a query. The query is executed and used to populate the view at the time
the command is issued (unless <command>WITH NO DATA</command> is used) and may be
refreshed later using <command>REFRESH MATERIALIZED VIEW</command>.
CREATE MATERIALIZED VIEW
は問い合わせからマテリアライズドビューを定義します。
この問い合わせはコマンド発行時にビューにデータを投入する(WITH NO DATA
が使用されていない場合)ために実行され、使用されます。
また将来のREFRESH MATERIALIZED VIEW
の使用で更新されるかもしれません。
<command>CREATE MATERIALIZED VIEW</command> is similar to
<command>CREATE TABLE AS</command>, except that it also remembers the query used
to initialize the view, so that it can be refreshed later upon demand.
A materialized view has many of the same properties as a table, but there
is no support for temporary materialized views.
CREATE MATERIALIZED VIEW
はCREATE TABLE AS
と似ていますが、必要に応じて後で更新できるように、ビューの初期化時に使用された問い合わせを記憶する点が異なります。
マテリアライズドビューはテーブルと同じ属性を多く持ちますが、一時的なマテリアライズドビューをサポートしていません。
<command>CREATE MATERIALIZED VIEW</command> requires
<literal>CREATE</literal> privilege on the schema used for the materialized
view.
CREATE MATERIALIZED VIEW
には、マテリアライズドビューのために使われるスキーマでのCREATE
権限が必要です。
IF NOT EXISTS
Do not throw an error if a materialized view with the same name already exists. A notice is issued in this case. Note that there is no guarantee that the existing materialized view is anything like the one that would have been created. 同じ名前のマテリアライズドビューが既に存在する場合にエラーとしません。 この場合、注意が発行されます。 既存のマテリアライズドビューが作成されようとしていたものと類似のものであることは全く保証されないことに注意してください。
table_name
The name (optionally schema-qualified) of the materialized view to be created. The name must be distinct from the name of any other relation (table, sequence, index, view, materialized view, or foreign table) in the same schema. 作成するマテリアライズドビューの名前です(スキーマ修飾も可)。 この名前は、同じスキーマ内にある他のリレーション(テーブル、シーケンス、インデックス、ビュー、マテリアライズドビュー、外部テーブル)と異なるものでなければなりません。
column_name
The name of a column in the new materialized view. If column names are not provided, they are taken from the output column names of the query. 新しいマテリアライズドビューの列の名前です。 列名が提供されていない場合の列名は、問い合わせの出力列名から取られます。
USING method
This optional clause specifies the table access method to use to store
the contents for the new materialized view; the method needs be an
access method of type <literal>TABLE</literal>. See <xref
linkend="tableam"/> for more information. If this option is not
specified, the default table access method is chosen for the new
materialized view. See <xref linkend="guc-default-table-access-method"/>
for more information.
この省略可能な句は、新しいマテリアライズドビューの内容を保存するのに使うテーブルアクセスメソッドを指定します。メソッドはTABLE
型のアクセスメソッドであることが必要です。
より詳しい情報は第61章を参照してください。
このオプションが指定されなければ、新しいマテリアライズドビューに対してはデフォルトのテーブルアクセスメソッドが選ばれます。
より詳しい情報はdefault_table_access_methodを参照してください。
WITH ( storage_parameter
[= value
] [, ... ] )
This clause specifies optional storage parameters for the new
materialized view; see
<xref linkend="sql-createtable-storage-parameters"/> in the
<xref linkend="sql-createtable"/> documentation for more
information. All parameters supported for <literal>CREATE
TABLE</literal> are also supported for <literal>CREATE MATERIALIZED
VIEW</literal>.
See <xref linkend="sql-createtable"/> for more information.
この句は、新しいマテリアライズドビューの格納パラメータ(省略可能)を指定します。
詳細についてはCREATE TABLEの文書の格納パラメータを参照してください。
CREATE TABLE
でサポートされるすべてのパラメータはCREATE MATERIALIZED VIEW
でもサポートされます。
詳細についてはCREATE TABLEを参照してください。
TABLESPACE tablespace_name
The <replaceable class="parameter">tablespace_name</replaceable> is the name
of the tablespace in which the new materialized view is to be created.
If not specified, <xref linkend="guc-default-tablespace"/> is consulted.
tablespace_name
はマテリアライズドビューが作成されるテーブル空間の名前です。
指定されていない場合はdefault_tablespaceを参照します。
query
A <link linkend="sql-select"><command>SELECT</command></link>, <link linkend="sql-table"><command>TABLE</command></link>,
or <link linkend="sql-values"><command>VALUES</command></link> command. This query will run within a
security-restricted operation; in particular, calls to functions that
themselves create temporary tables will fail.
SELECT
、TABLE
またはVALUES
コマンドです。
この問い合わせはセキュリティ限定された操作の中で実行されます。
具体的には一時テーブルを作成する関数の呼び出しは失敗します。
WITH [ NO ] DATA
This clause specifies whether or not the materialized view should be
populated at creation time. If not, the materialized view will be
flagged as unscannable and cannot be queried until <command>REFRESH
MATERIALIZED VIEW</command> is used.
この句は作成時にマテリアライズドビューにデータを投入するかどうかを指定します。
投入しない場合、マテリアライズドビューはスキャン不可という印が付き、REFRESH MATERIALIZED VIEW
が使用されるまで問い合わせることができません。
<command>CREATE MATERIALIZED VIEW</command> is a
<productname>PostgreSQL</productname> extension.
CREATE MATERIALIZED VIEW
はPostgreSQLの拡張です。