REFRESH MATERIALIZED VIEW
REFRESH MATERIALIZED VIEW — 替换物化视图的内容
概要
REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
[ WITH [ NO ] DATA ]
描述
REFRESH MATERIALIZED VIEW
完全替换物化视图的内容。要执行此命令,您必须是物化视图的所有者。旧内容将被丢弃。如果指定了WITH DATA
(或默认值),则执行后备查询以提供新数据,并且物化视图保留在可扫描状态。如果指定了WITH NO DATA
,则不会生成新数据,并且物化视图保留在不可扫描状态。
CONCURRENTLY
和WITH NO DATA
不能同时指定。
参数
CONCURRENTLY
刷新物化视图,而不会锁定对物化视图的并发选择。如果没有此选项,影响大量行的刷新往往会倾向于使用更少的资源并更快速地完成,但可能会阻止其他尝试从物化视图读取的连接。在受影响的行数较少的情况下,此选项可能会更快。
仅当物化视图上至少有一个仅使用列名且包含所有行的
UNIQUE
索引(即,它不能是表达式索引或包含WHERE
子句)时,才允许使用此选项。当物化视图尚未填充时,可能不会使用此选项。
即使使用此选项,也仅可以针对任何一个物化视图同时运行一个
REFRESH
。名称
要刷新的物化视图的名称(可选,模式限定)。
备注
如果物化视图的定义查询中存在ORDER BY
子句,则物化视图的原始内容将按这种方式排序;但是REFRESH MATERIALIZED VIEW
不保证保留该排序。
示例
此命令将使用物化视图定义中的查询替换名为order_summary
的物化视图的内容,并将其保留在可扫描状态
REFRESH MATERIALIZED VIEW order_summary;
此命令将释放与物化视图annual_statistics_basis
关联的存储,并将其保留在不可扫描状态
REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;
兼容性
REFRESH MATERIALIZED VIEW
是一个PostgreSQL扩展。
另请参见
CREATE MATERIALIZED VIEW,ALTER MATERIALIZED VIEW,DROP MATERIALIZED VIEW