【问题标题】:Refresh or Create Materialized view? Postgres刷新或创建物化视图? Postgres
【发布时间】:2025-12-02 13:40:01
【问题描述】:

我有一个物化视图,当我们的数据管道进行完全刷新时,它有时会被删除。有没有办法在查询中包含一些逻辑以刷新它是否存在,如果不存在,则创建它?

类似的东西

refresh materialized view my_mat_view

if my_mat_view does not exist then execute the code below

create materialized view my_mat_view as select * from table

【问题讨论】:

  • “有时会被删除”。这听起来像是一个应该解决的问题。
  • 是的,我同意,这是我们重组管道时的临时修复

标签: sql postgresql materialized-views


【解决方案1】:

一种选择是使用带有无数据选项的create .. if not exists,然后无条件运行refresh

create materialized view if not exists my_mat_view 
as 
select * 
from table
with no data; --<< don't populate the data just yet

-- the mview will exists now, no matter what
refresh materialized view my_mat_view;

【讨论】: