当前位置: 首页 > news >正文

oracle 物化视图设置自动更新日志

从初始阶段创建基本数据

创建原始表 t_order(含测试数据)

CREATE TABLE t_order 
(order_id NUMBER PRIMARY KEY, pay_amount NUMBER(10,2), pay_status NUMBER, create_time DATE);
INSERT INTO t_order VALUES 
(1, 199.99, 1, TO_DATE('2025-01-15', 'YYYY-MM-DD'));
COMMIT;

创建物化视图日志(自动生成 MLOG$_T_ORDER)

CREATE MATERIALIZED VIEW LOG ON t_order WITH PRIMARY KEY, ROWID (pay_amount, pay_status, create_time) INCLUDING NEW VALUES;

创建增量物化视图 mv_order_stat_incr

CREATE MATERIALIZED VIEW mv_order_stat_incr
REFRESH FAST ON DEMAND
AS
SELECT TRUNC(create_time) AS stat_date, COUNT(order_id) AS order_count, SUM(pay_amount) AS total_amount
FROM t_order WHERE pay_status = 1 GROUP BY TRUNC(create_time);

此时,mv_order_stat_incr 里已经有一条数据
stat_date=2025-01-15,order_count=1,total_amount=199.99;

MLOG$_T_ORDER 里暂时没有记录(因为创建物化视图后,还没修改过 t_order)。

修改原始表 t_order

//新增一条已付款订单
INSERT INTO t_order VALUES (2, 299.99, 1, TO_DATE('2025-01-15', 'YYYY-MM-DD'));
//修改一条订单:从已付款(1)改成未付款(0)
UPDATE t_order SET pay_status=0 WHERE order_id=1;
COMMIT;  // 提交后,Oracle 自动往 MLOG$_T_ORDER 写两条变更记录

此时 MLOG$_T_ORDER 里有两条记录
(ps:是你执行 CREATE MATERIALIZED VIEW LOG ON t_order 后,Oracle 自动创建的系统日志表不是你手动建的)

一条是 INSERT 操作(order_id=2,pay_amount=299.99,pay_status=1);
一条是 UPDATE 操作(order_id=1,旧 pay_status=1,旧 pay_amount=199.99,新 pay_status=0)。

手动执行增量命令

EXEC DBMS_MVIEW.REFRESH('mv_order_stat_incr', 'F');

对 INSERT 记录:stat_date=2025-01-15 的 order_count+1(变成 2),total_amount+299.99(变成 199.99+299.99=499.98);
对 UPDATE 记录:stat_date=2025-01-15 的 order_count-1(变成 1),total_amount-199.99(变成 499.98-199.99=299.99);
最终 mv_order_stat_incr 的数据变成:stat_date=2025-01-15,order_count=1,total_amount=299.99(和 t_order 最新状态一致);
MLOG$_T_ORDER 里的两条记录被标记为 “已处理”,后续会自动清理。

http://www.dtcms.com/a/613931.html

相关文章:

  • Java测试题
  • YOLO v11的学习记录(五) 使用自定义数据从头训练一个实例分割的模型
  • 大模型Agent工作流设计模式深度解析:从ReAct到ReWOO的实践演进
  • redis的配置windows
  • 漯河英文网站建设秦皇岛陵县网站建设
  • HTML5+CSS3+JS小实例:螺旋鼠标轨迹
  • 长沙市云网站建设大型电商网站开发方案
  • 从一到无穷大 #57:Snowflake的剪枝方案
  • 网页网站的区别是什么最适合seo的wordpress主题
  • 深入理解 OverlayFS:用分层的方式重新组织 Linux 文件系统
  • 定制型网站制作公司织梦图片自适应网站源码
  • 解决mac端pycharm执行allure命令报错:returned non-zero exit status 127
  • 公司官网制作报价青岛关键词优化平台
  • ModelScope微调模型
  • Ollama本地电脑运行无限制AI模型超简单案例
  • 银川网站建设那家好品牌整合营销方案
  • 南京手机网站制作公司手机做图纸app下载网站
  • 学习笔记九:线性判别分析
  • RHCE的SSH配置文件及实验
  • 网站开发基础知识公众号里链接的网站怎么做的
  • 人工智能之数据分析 numpy:第四章 数组属性和数据类型
  • 网站建设所需美工app界面设计的软件
  • 营口网站建设开发制作家装公司加盟哪个公司好
  • openwrt源码编译环境搭建-安装Luci
  • synchronized全解析:从锁升级到性能优化,彻底掌握Java内置锁
  • FPGA工程师12实战项目-基于PCIe的高速ADC采集项目
  • Linux驱动开发实战指南-中
  • 网站的开发环境是什么个人制作个网站
  • 减速机在不同工况下如何安装才更稳?
  • 哪个网站可以做线上翻译赚钱织梦系统seo网站模板