↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 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,则不会生成新数据,并使物化视图处于不可扫描状态。

不得同时指定 CONCURRENTLY 和 WITH NO DATA。

参数

CONCURRENTLY #

刷新物化视图时,不会阻塞针对该物化视图的并发查询。如果不使用此选项,一次影响很多行的刷新通常会占用更少的资源并且更快完成,但可能会阻塞其他试图从该物化视图读取的连接。在只影响少量行的情况下,此选项可能更快。

只有当该物化视图上至少有一个仅使用列名且涵盖所有行的 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 VIEW 是 PostgreSQL 的扩展。

报告文档问题

阅读 上游文档. 通过 PostgreSQL 文档反馈表单.