带有 "dynamic" 时间戳 WHERE 子句的 PostgreSQL 物化视图

PostgreSQL materialized view with a "dynamic" timestamp WHERE clause

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

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 时重新评估它,以便我总是在最后一天更新记录。这可能吗?如何实现?

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

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;

实际上,物化视图似乎确实如我所愿。我的问题(空垫视图)是由数据库损坏引起的。