【问题标题】:refresh MATERIALIZED VIEW monthly每月刷新 MATERIALIZED VIEW
【发布时间】:2021-10-25 07:42:23
【问题描述】:

如果我想每月刷新一次,该怎么做?

DROP MATERIALIZED VIEW <view-name>;
CREATE MATERIALIZED VIEW <view-name> 
refresh on demand 
start with sysdate next sysdate + 30
as select

也使用refresh on demand ???与否

【问题讨论】:

  • 使用 cronjob 可以设置刷新的时间。也可以随时刷新。

标签: mysql sql oracle


【解决方案1】:

您可以将物化视图的子句start with...next 用于刷新完成或按需刷新。

SQL> create materialized view mymw refresh complete start with (sysdate) next (add_months(sysdate,1)) with rowid
  as select * from t1 ;

Materialized view created.

SQL> create materialized view test1.mymw refresh on demand start with (sysdate) next (add_months(sysdate,1)) with rowid
  2  as select * from test1.t1 ;

Materialized view created.

如文档所述

从句开始

为第一次自动刷新时间指定一个日期时间表达式。

下一个子句

指定一个日期时间表达式来计算时间间隔 自动刷新。

START WITH 和 NEXT 值都必须计算为 未来。如果省略 START WITH 值,则数据库确定 通过评估 NEXT 表达式的第一次自动刷新时间 关于物化视图的创建时间。如果你 指定 START WITH 值但省略 NEXT 值,然后数据库 仅刷新一次物化视图。如果您同时省略 START WITH 和 NEXT 值,或者如果您完全省略 create_mv_refresh, 那么数据库不会自动刷新物化 查看。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 2018-07-18
    • 2022-01-18
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    相关资源
    最近更新 更多