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 的扩展。
如果您在文档中发现任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。