PostgreSQL 9.4.4 中文手册
上一页 | 上一级 |  | 下一页

# 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`。

`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 VIEW`是一个PostgreSQL扩展。

## 又见

CREATE MATERIALIZED VIEW, ALTER MATERIALIZED VIEW, DROP MATERIALIZED VIEW

上一页 | 起始页 | 下一页
REASSIGN OWNED | 上一级 | REINDEX