Tag: 物化视图

使用规则或通知自动刷新物化视图

我有一个PostgreSQL 9.3数据库的实体化视图,很less发生变化(大约每天两次)。 但是当它发生时,我想立即更新它的数据。 以下是我到目前为止的想法: 有一个物化视图mat_view ,它使用一些join语句从表table1和table2获取数据。 每当table1或table2东西发生变化,我已经有一个触发器,更新一个小的configuration表config组成 table_name | mat_view_name | need_update ———–+—————+———— table1 | mat_view | TRUE/FALSE table2 | mat_view | TRUE/FALSE 因此,如果table1任何内容发生更改(每个语句都有UPDATE和DELETE上的触发器),则第一行中的need_update字段将设置为TRUE 。 table2和第二行也是一样的。 显然,如果need_update为TRUE,则物化视图必须刷新。 更新 :由于物化视图不支持规则(如下面评论中提到的@pozs),我会更进一步。 我会创build一个虚拟视图v_mat_view定义“ SELECT * FROM mat_view ”。 当用户在这个视图上做一个SELECT时,我需要创build一个规则ON SELECT,它执行以下操作: 检查mat_view是否应该更新( SELECT 1 FROM config WHERE mat_view_name='mat_view' AND need_update=TRUE ) 用UPDATE config SET need_update=FALSE where mat_view_name='mat_view'重置need_update标志UPDATE config SET […]

如何刷新oracle中的物化视图

Iam尝试使用以下命令刷新物化视图: DBMS_MVIEW.REFRESH('v_materialized_foo_tbl') 但它是抛出无效的SQL语句。 然后我创build了一个像这样的存储过程: CREATE OR REPLACE PROCEDURE MAT_VIEW_FOO_TBL IS BEGIN DBMS_MVIEW.REFRESH('v_materialized_foo_tbl') END MAT_VIEW_FOO_TBL IS; 这个程序已经成功创build,但是当我用这个程序调用 MAT_VIEW_FOO_TBL; 它再次抛出一个错误。 请为此提出解决scheme。 谢谢,Srinivas

Oracle中的Views和Materialized Views有什么区别?

Oracle中的Views和Materialized Views有什么区别?

PostgreSQL中的计算/计算列

PostgreSQL是否支持计算/计算列,如MS SQL Server? 我在文档中找不到任何内容,但由于此function包含在其他许多DBMS中,所以我想我可能会错过一些东西。 例如: http : //msdn.microsoft.com/en-us/library/ms191250.aspx