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
型別的訪問方法。有關更多資訊,請參閱 第 62 章。如果未指定此選項,則為新物化檢視選擇預設表訪問方法。有關更多資訊,請參閱 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 的一個擴充套件。
如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表格 報告文件問題。