Postgresql 中文操作指南

REFRESH MATERIALIZED VIEW

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

Synopsis

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

Description

REFRESH MATERIALIZED VIEW 完全替换物化视图的内容。要执行此命令,你必须是物化视图的所有者。旧内容将被丢弃。如果指定(或默认为) WITH DATA ,则执行后备查询以提供新数据,并且物化视图保留在可扫描状态。如果指定 WITH NO DATA ,则不会生成新数据,并且物化视图保留在不可扫描状态。

CONCURRENTLYWITH NO DATA 可能不会一起指定。

Parameters

  • CONCURRENTLY

    • 刷新物化视图,而不会锁定对物化视图的并发选择。如果没有此选项,则影响很多行的刷新将倾向于使用较少的资源并且更迅速地完成,但是可能会阻其他尝试从物化视图读取的连接。在少量行受到影响的情况下,此选项可能更快。

    • 此选项仅允许在物化视图上至少有一个 UNIQUE 索引的情况下,该索引仅使用列名并且包括所有行;也就是说,它不能是表达式索引或包括 WHERE 从句。

    • 在物化视图尚未填充时,不能使用此选项。

    • 即使有了此选项,也只允许一次一个 REFRESH 对任何一个物化视图进行运行。

  • name

    • 要刷新的物化视图的名称(可选择限定架构)。

Notes

如果在物化视图的定义查询中有 ORDER BY 子句,则将按此方式对物化视图的原始内容进行排序;但 REFRESH MATERIALIZED VIEW 并不保证保留该顺序。

Examples

此命令将使用物化视图定义中的查询替换名为 order_summary 的物化视图的内容,并使其保持可扫描状态:

REFRESH MATERIALIZED VIEW order_summary;

此命令将释放与物化视图 annual_statistics_basis 关联的存储,并使其保持不可扫描状态:

REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;

Compatibility

REFRESH MATERIALIZED VIEW 是 PostgreSQL 扩展。