PostgreSQL物化视图带有“动态”时间戳WHERE子句

时间:2018-02-27 10:39:03

标签: postgresql materialized-views

我有一个这样的物化视图:

CREATE MATERIALIZED VIEW <name> AS SELECT <column>, count(<column>)
FROM <table>
WHERE last_updated > NOW() - INTERVAL '1 day'
GROUP BY <column> ORDER BY <column>

似乎只在物化视图创建时评估间隔,但我想在每个REFRESH上重新评估它,以便我总是在最后一天更新记录。这可能吗?如何?

2 个答案:

答案 0 :(得分:1)

正如评论中指出的那样,它不应该发生。 REFRESH就足够了。无论如何,这是一个问题的解决方法:

CREATE VIEW foo AS SELECT <column>, count(<column>)
FROM <table>
WHERE last_updated > NOW() - INTERVAL '1 day'
GROUP BY <column> ORDER BY <column>

然后..

CREATE MATERIALIZED VIEW bar AS SELECT * FROM foo;

答案 1 :(得分:0)

实际上,看似物化视图的确表现得像我想要的那样。我的问题(空垫视图)是由数据库损坏引起的。