选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3
历史版本PostgreSQL 9.5 已于 2021 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

REFRESH MATERIALIZED VIEW

REFRESH MATERIALIZED VIEW — 替换物化视图的内容

大纲

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

描述

REFRESH MATERIALIZED VIEW会完全替换物化视图的内容。 要执行此命令,必须是该物化视图的拥有者。旧 内容会被丢弃。如果指定了WITH DATA(或者默认如 此),则会执行其底层查询以生成新数据,并使物化视图处于可扫描状态。如 果指定了WITH NO DATA,则不会生成新数据,并使物化视 图处于不可扫描状态。

不得同时指定CONCURRENTLYWITH NO DATA

参数

CONCURRENTLY

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

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

只有在该物化视图已经填充数据时,才能使用此选项。

即使使用了此选项,对于任意一个物化视图,一次也只能运行一个 REFRESH

name

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

注解

虽然会保留未来CLUSTER操作使用的默认索引, 但REFRESH MATERIALIZED VIEW不会基于该属性对生成 的行排序。如果希望数据在生成时就已排序,必须在底层查询中使用 ORDER BY子句。

示例

这个命令会使用物化视图order_summary定义中的查询来 替换其内容,并使其处于可扫描状态:

REFRESH MATERIALIZED VIEW order_summary;

这个命令会释放与物化视图annual_statistics_basis相关 的存储,并使其处于不可扫描状态:

REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;

兼容性

REFRESH MATERIALIZED VIEWPostgreSQL的扩展。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。