postgres中怎么样可以让materialized view自动刷新?
因为要做BI应用,需要使用到materialized view,但是每次都要手动refresh很麻烦,怎么样可以在数据源产生新数据的时候让materialized view也跟着自动更新?
postgres中怎么样可以让materialized view自动刷新?
因为要做BI应用,需要使用到materialized view,但是每次都要手动refresh很麻烦,怎么样可以在数据源产生新数据的时候让materialized view也跟着自动更新?
3 回答3.7k 阅读✓ 已解决
5 回答1.5k 阅读
2 回答2.1k 阅读
3 回答2.1k 阅读
3 回答2.4k 阅读
2 回答594 阅读✓ 已解决
1 回答973 阅读
我认为在PG中可以考虑使用AFTER触发器来实现题主的需求。
假设有一张表
foo
, 其定义以及现有数据如下所示:以下步骤将创建一个物化视图并创建与之关联的自动化刷新触发器
创建物化视图
创建刷新物化视图的触发器函数
由于我们将要创建的是一个AFTER触发器, 所以函数返回NULL即可
创建AFTER触发器自身
INSERT, UPDATE, DELETE事件均会触发该触发器
接下来可以进行简单的校验
未对表进行任何更改时查询该物化视图
对表进行更新(本例中是INSERT操作)后查询该物化视图
可见,这套基于触发器的物化视图自动刷新机制生效了
但是,必须要强调是: 使用触发器对原表的更新性能是有伤害的, 请结合具体应用场景谨慎使用.