使用PostgreSQL 9.6.5,我正在远离内置的MATERIALIZED VIEW
模型,因为它缺少增量刷新,而且就我的目的而言(通过SymmetricDS复制)我实际上需要表存储中的数据,而不是视图。我的解决方案:
VIEW_XXX_UNMAT
(实际上只是一个选择)VIEW_XXX
(快照)VIEW_XXX_UNMAT
VIEW_XXX
VIEW_XXX
INSERT
中涉及的每个表创建DELETE
/ UPDATE
/ VIEW_XXX_UNMAT
个触发器,使用适当的PK调用刷新函数我的灵感来自于这个PGCon 2008谈话,一旦我们克服了创建所有这些触发器的障碍,它就能很好地工作。显然,我们将UPDATE
触发器限制为所涉及的列,并且仅在NEW
数据与OLD
数据不同时才刷新视图。
此时我想知道: