刷新或创建物化视图? Postgres

Refresh or Create Materialized view? Postgres

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

像这样

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

一个选项是使用无数据选项的 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;