2025年9月25日: PostgreSQL 18 釋出!
支援的版本:當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3

REFRESH MATERIALIZED VIEW

REFRESH MATERIALIZED VIEW — 替換物化檢視的內容

概要

REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
    [ WITH [ NO ] DATA ]

描述

REFRESH MATERIALIZED VIEW 命令將完全替換物化檢視的內容。要執行此命令,您必須對該物化檢視擁有 MAINTAIN 許可權。舊內容將被丟棄。如果指定了 WITH DATA(或預設),將執行底層查詢來提供新資料,物化檢視將處於可掃描狀態。如果指定了 WITH NO DATA,則不生成新資料,物化檢視將處於不可掃描狀態。

CONCURRENTLYWITH NO DATA 不能同時指定。

引數

CONCURRENTLY

在不阻止對物化檢視進行併發 SELECT 操作的情況下重新整理物化檢視。沒有此選項時,重新整理大量行傾向於使用較少資源並更快完成,但可能會阻塞其他嘗試從物化檢視讀取資料的連線。此選項在影響少量行的情況下可能更快。

僅當物化檢視上至少有一個 UNIQUE 索引時,才允許使用此選項,該索引僅使用列名幷包含所有行;也就是說,它不能是表示式索引或包含 WHERE 子句。

僅當物化檢視已填充時才能使用此選項。

即使使用此選項,一次也只能針對任何一個物化檢視執行一個 REFRESH 操作。

name

要重新整理的物化檢視的名稱(可選擇模式限定)。

註釋

如果物化檢視的定義查詢中包含 ORDER BY 子句,則物化檢視的原始內容將按此順序排列;但 REFRESH MATERIALIZED VIEW 不保證保留此排序。

REFRESH MATERIALIZED VIEW 執行時,search_path 會臨時更改為 pg_catalog, pg_temp

示例

此命令將使用物化檢視定義中的查詢替換名為 order_summary 的物化檢視的內容,並使其處於可掃描狀態。

REFRESH MATERIALIZED VIEW order_summary;

此命令將釋放與物化檢視 annual_statistics_basis 關聯的儲存,並使其處於不可掃描狀態。

REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;

相容性

REFRESH MATERIALIZED VIEWPostgreSQL 的一個擴充套件。

提交更正

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