PostgreSQL中的物化视图能否继承?

PostgreSQL中的物化视图能否继承?,postgresql,time-series,materialized-views,Postgresql,Time Series,Materialized Views,我对时间序列数据使用PostgreSQL。有一个事件表和一些分区表,如Event_2016、Event_2017,它们通过对日期范围的约束检查继承自Event。因此,在查询事件表时,PostgreSQL只使用所需的子表 要汇总事件,我使用EventByDay物化视图。刷新此选项需要读取所有事件表 我是否可以像上面的表一样使用物化视图来限制每个物化视图中的数据量?(EventByDay_2016继承自EventByDay)。否,MVView不能参与表继承 但是您可以创建一个(常规)子表,然后使用i

我对时间序列数据使用PostgreSQL。有一个事件表和一些分区表,如Event_2016、Event_2017,它们通过对日期范围的约束检查继承自Event。因此,在查询事件表时,PostgreSQL只使用所需的子表

要汇总事件,我使用EventByDay物化视图。刷新此选项需要读取所有事件表


我是否可以像上面的表一样使用物化视图来限制每个物化视图中的数据量?(EventByDay_2016继承自EventByDay)。

否,MVView不能参与表继承

但是您可以创建一个(常规)子表,然后使用
insert-in。。使用MVIEW中的查询选择…
。如果要在数据库中存储MVIEW的查询,请创建一个用于填充子表的视图

大概是这样的:

初始设置: 刷新表格:
或者,您可以使用
delete
以事务方式刷新子表中的数据

谢谢,“truncate..insert”将显示不同于MVIEW上并发刷新的行为?@StephanSchmidt:是的。这就是为什么我还提到了
delete
方法,它只在您提交delete和insert之后才使更改可见。好的,那么我就这样说,希望Postgres将来支持对MVIEWs进行部分更新或继承MVIEWs。
create view v_event_by_day_2016 
as 
-- this is the complete query from your MVIEW
select ...;

create table event_by_day_2016
as
select *
from v_view_one;

alter table event_by_day_2016 inherit event_by_day; 
alter table event_by_day_2016 add constraint check (...);
truncate table event_by_day_2016;
insert into event_by_day_2016
select *
from v_event_by_day_2016;