支援的版本: 目前 (17) / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3

CREATE MATERIALIZED VIEW(建立實體化檢視表)

CREATE MATERIALIZED VIEW — 定義新的實體化檢視表

概要

CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name
    [ (column_name [, ...] ) ]
    [ USING method ]
    [ WITH ( storage_parameter [= value] [, ... ] ) ]
    [ TABLESPACE tablespace_name ]
    AS query
    [ WITH [ NO ] DATA ]

描述

CREATE MATERIALIZED VIEW 定義查詢的實體化檢視表。查詢會被執行,並用來在指令發布時填充檢視表(除非使用 WITH NO DATA),並且可以在之後使用 REFRESH MATERIALIZED VIEW 重新整理。

CREATE MATERIALIZED VIEW 類似於 CREATE TABLE AS,但它也會記住用於初始化檢視表的查詢,以便以後可以根據需要重新整理。實體化檢視表具有與表相同的許多屬性,但不支援臨時實體化檢視表。

CREATE MATERIALIZED VIEW 需要在用於實體化檢視表的結構描述上具有 CREATE 權限。

參數

IF NOT EXISTS

如果具有相同名稱的實體化檢視表已存在,則不要拋出錯誤。 在這種情況下,會發出通知。 請注意,不能保證現有的實體化檢視表與將被建立的實體化檢視表完全相同。

table_name

要建立的實體化檢視表的名稱(可選擇使用結構描述限定)。 該名稱必須與同一結構描述中的任何其他關聯(表、序列、索引、檢視表、實體化檢視表或外部表)的名稱不同。

column_name

新實體化檢視表中欄位的名稱。 如果未提供欄位名稱,則會從查詢的輸出欄位名稱中取得。

USING method

這個可選子句指定用於儲存新實體化檢視表內容的表存取方法;該方法需要是 TABLE 類型的存取方法。 有關更多資訊,請參閱 第 61 章。 如果未指定此選項,則會為新的實體化檢視表選擇預設表存取方法。 有關更多資訊,請參閱 default_table_access_method

WITH ( storage_parameter [= value] [, ... ] )

此子句指定新實體化檢視表的可選儲存參數; 有關更多資訊,請參閱 儲存參數CREATE TABLE 文件中。 CREATE TABLE 支援的所有參數也受 CREATE MATERIALIZED VIEW 支援。 有關更多資訊,請參閱 CREATE TABLE

TABLESPACE tablespace_name

tablespace_name 是要在其中建立新實體化檢視表的表格空間的名稱。 如果未指定,則會諮詢 default_tablespace

query

SELECTTABLEVALUES 指令。 此查詢將在安全性限制的操作中執行; 特別是,呼叫本身建立臨時表的函式將會失敗。 此外,當查詢正在執行時,search_path 暫時變更為 pg_catalog, pg_temp

WITH [ NO ] DATA

此子句指定是否應在建立時填充實體化檢視表。 如果沒有,實體化檢視表將被標記為不可掃描,並且在使用 REFRESH MATERIALIZED VIEW 之前無法查詢。

相容性

CREATE MATERIALIZED VIEW 是一個 PostgreSQL 擴充功能。

提交更正

如果您在文件中發現任何不正確、與您使用特定功能的體驗不符或需要進一步澄清的地方,請使用此表單回報文件問題。