既可以使用一個恆定的值,並重新創建物化視圖與不同的恆定每次而不是刷新它:
CREATE OR REPLACE MATERIALIZED VIEW my_warranty_orders
AS SELECT w.order_id, w.line_item_id, o.order_date
FROM warranty_orders w
INNER JOIN orders o
ON (o.order_id = o.order_id)
WHERE o.sales_rep_id = 165
AND o.order_month = DATE '2016-06-01';
或創建另一個表,並加入該進物化視圖:
CREATE TABLE my_warranty_orders_month (
month DATE PRIMARY KEY
);
INSERT INTO my_warranty_orders_month VALUES (DATE '2016-06-01');
CREATE MATERIALIZED VIEW my_warranty_orders
AS SELECT w.order_id, w.line_item_id, o.order_date
FROM warranty_orders w
INNER JOIN orders o
ON (o.order_id = o.order_id)
INNER JOIN my_warranty_orders_month m
ON (o.order_month = m.month)
WHERE o.sales_rep_id = 165;
然後當你要改變它:
UPDATE my_warranty_orders_month
SET month = DATE '2016-07-01';
並刷新物化視圖。
來源
2016-06-27 08:36:50
MT0
感謝您的飼料被刷新回來時重置上下文/客戶端信息。仍然在尋找更好的方式來刷新MV與嬰兒車。但是,您的第二個選項即時追蹤是最佳解決方法。 – user881703