需求背景描述:
在真实的项目中,有这么一个需求:现在有两张表,一张产品表productinfo,一张产品推荐表recommendproduct,产品表存储着所有的产品信息,产品推荐表存储着某些比较热卖的推荐产品。当我们将产品表中某个产品的价格修改了之后,在产品推荐表中,如果也存在该条产品记录,则需要自动更新产品推荐表中的该条产品记录的价格。这就是当一件事发生后,另一件事自动发生,这是一个典型的触发器问题,当然也可以用其他办法解决,用触发器会更加地简单方便。
(注:针对oracle数据库)
1.产品表productinfo:(这个表省略了很多字段)
GD010010001 | LG手机 | 1556.00 | 深圳XX电子 |
GD020020002 | 佳能相机 | 1570.00 | 福州XX电子 |
2.产品推荐表recommendproduct:(这个表省略了很多字段)
GD010010001 | LG手机 | 1556.00 | 深圳XX电子 |
触发器的代码就几行,非常简单:
create or replace trigger updateProductPrice after update on productinfo declare cursor c_price is select t.productid productid, t.productprice productprice from productinfo t; begin for v_record in c_price loop update recommendproduct p set p.productprice = v_record.productprice where p.productid = v_record.productid; end loop; end updateProductPrice;
这段触发器代码非常容易读懂,是一个简单的示例,如果你遇到类似的需求,你可以根据这段代码依葫芦画瓢。
一个Java技术交流群,一起交流,共同进步,扣扣群号:513086638
相关推荐
调试oracle触发器文档,自己整理的,不懂的可以聊系我
1、行级触发器不支持 update 、select 、delete 对自身表的操作。 2、表级触发器 不支持 :new 和 :old对象 所以想要触发器对自身表数据做修该,则用行级触发器得到 :new 和 :old对象中的相关数据,然后将这样的数据...
oracle insert数据成功之后调用触发器,触发器调用存储过程,存储实时调用java http
个人亲测oracle触发器调用java程序
详细整理了oracle中before和after的使用问题
oracle_触发器的种类和触发事件,很详细!
oracle触发器语法要点
oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例
介绍数据库触发器的PPT。内容包括:存储过程的创建与使用;存储过程的查看、编辑和删除;触发器的创建与使用;触发器的查看、编辑、重命名和删除
Oracle 触发器 备份 表数据
触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。数据库触发器有以下的作用:
利用oracle 系统触发器防止用户使用drop table 或truncate table 命令。
oracle触发器 练习,语句,应用,用法
ORACLE触发器、内置程序包教学.doc )
oracle触发器功能介绍内附具体说明和简单介绍
Oracle触发器的概念和类型
oracle 触发器 调用 存储过程 Oracle自治事务(Autonomous Transaction)
Oracle触发器与存储过程高级编程Oracle触发器与存储过程高级编程
Oracle触发器语法
oracle触发器执行顺序.pdf