In Oracle, it is possible to refresh just part of the data.但在PostgreSQL中,materialized 视图从9.3(现在的版本)开始就得到了支持,但时间不长.所以我想知道:在PostgreSQL 9.3中,是否可以只刷新materialized 视图中的部分数据?如果是,怎么做?

推荐答案

PostgreSQL还不支持materialized 视图的渐进/部分更新.

9.4 adds REFRESH MATERIALIZED VIEW CONCURRENTLY but it still has to be regenerated entirely.

如果有人足够热情,我们希望在9.5中看到支持.不过,对于简单的materialized 视图,只有在没有用户定义的触发器/规则的情况下才能做到这一点,甚至需要特殊的支持来处理诸如count(...) ... GROUP BY ...的增量更新之类的事情.

不过,您提到的Oracle答案实际上不是增量刷新.它是按分区刷新的.为了让PostgreSQL在本机上支持这一点,它首先必须支持真正的声明性分区——它不支持,尽管我们正在讨论是否可以在9.5中实现.

Postgresql相关问答推荐

PostgreSQL:`row_alias为null`且`row_alias不是null`返回值不一致

如何高效地将行聚合到数组中,同时保留`NULL`来指示丢失的数据?

使用postgres在go测试容器中使用tern迁移

在连接字符串并将其附加到 PostgreSQL 中的 where 子句时出现语法错误.怎么修?

ST_Intersects 太慢

使用 ON CONFLICT 从 INSERT 返回行,无需更新

是否有 postgres CLOSEST 运算符?

如何从 WSL 连接到 windows postgres 数据库

获取带有时区偏移的日期

如果 PostgreSQL 数据库中存在,则删除表

如何引用使用 ON CONFLICT 中的函数的唯一索引?

plpgsql:使用 2 个 OUT 参数调用函数

将主键更改为自动递增

Rails 验证数组中的值

使用 PostGIS 查找给定点的 n 个最近邻?

Django 1.9.2 AssertionError:database connection isn't set to UTC

获取 psycopg2 count(*) 结果数

带有偏移限制的 Select 查询太慢了

FOR EACH STATEMENT 触发器示例

在 PostgreSQL 中 Select 进入临时表?