2024 年 9 月 26 日: PostgreSQL 17 发布!
支持版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本:11 / 10 / 9.6 / 9.5 / 9.4 / 9.3

刷新物化视图

刷新物化视图 — 替换物化视图的内容

概要

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

描述

刷新物化视图 完全替换物化视图的内容。要执行此命令,您必须对物化视图拥有 MAINTAIN 权限。旧内容将被丢弃。如果指定了 WITH DATA(或默认值),则执行支持查询以提供新数据,并将物化视图保留在可扫描状态。如果指定了 WITH NO DATA,则不会生成新数据,并将物化视图保留在不可扫描状态。

CONCURRENTLYWITH NO DATA 不能一起指定。

参数

CONCURRENTLY

刷新物化视图,而不会锁定对物化视图的并发选择。没有此选项,影响大量行的刷新往往会使用更少的资源并更快地完成,但可能会阻止其他尝试从物化视图读取的连接。如果受影响的行数很少,此选项可能会更快。

仅当物化视图上至少有一个 UNIQUE 索引仅使用列名并包含所有行时,才允许使用此选项;也就是说,它不能是表达式索引或包含 WHERE 子句。

仅当物化视图已填充时,才能使用此选项。

即使使用此选项,每次也只能针对任何一个物化视图运行一个 REFRESH

名称

要刷新的物化视图的名称(可选地限定模式)。

备注

如果物化视图的定义查询中存在 ORDER BY 子句,则物化视图的原始内容将按该方式排序;但 刷新物化视图 不保证保留该排序。

刷新物化视图 运行时,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;

兼容性

刷新物化视图PostgreSQL 扩展。

提交更正

如果您在文档中发现任何不正确的地方,与您对特定功能的体验不符,或者需要进一步说明,请使用 此表格 报告文档问题。