CREATE MATERIALIZED VIEW — 定義新的實體化檢視表
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ]table_name
[ (column_name
[, ...] ) ] [ USINGmethod
] [ WITH (storage_parameter
[=value
] [, ... ] ) ] [ TABLESPACEtablespace_name
] ASquery
[ 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
SELECT
、TABLE
或 VALUES
指令。 此查詢將在安全性限制的操作中執行; 特別是,呼叫本身建立臨時表的函式將會失敗。 此外,當查詢正在執行時,search_path 暫時變更為 pg_catalog, pg_temp
。
WITH [ NO ] DATA
此子句指定是否應在建立時填充實體化檢視表。 如果沒有,實體化檢視表將被標記為不可掃描,並且在使用 REFRESH MATERIALIZED VIEW
之前無法查詢。
CREATE MATERIALIZED VIEW
是一個 PostgreSQL 擴充功能。
如果您在文件中發現任何不正確、與您使用特定功能的體驗不符或需要進一步澄清的地方,請使用此表單回報文件問題。