`
hnylj
  • 浏览: 211053 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle触发器的一个应用场景

阅读更多

 

需求背景描述:

在真实的项目中,有这么一个需求:现在有两张表,一张产品表productinfo,一张产品推荐表recommendproduct,产品表存储着所有的产品信息,产品推荐表存储着某些比较热卖的推荐产品。当我们将产品表中某个产品的价格修改了之后,在产品推荐表中,如果也存在该条产品记录,则需要自动更新产品推荐表中的该条产品记录的价格。这就是当一件事发生后,另一件事自动发生,这是一个典型的触发器问题,当然也可以用其他办法解决,用触发器会更加地简单方便。

(注:针对oracle数据库)

 

1.产品表productinfo:(这个表省略了很多字段)

 

PRODUCTIDPRODUCTNAMEPRODUCTPRICEPRODUCEADDRESS
GD010010001 LG手机 1556.00 深圳XX电子
GD020020002 佳能相机 1570.00 福州XX电子


2.产品推荐表recommendproduct:(这个表省略了很多字段)

 

PRODUCTIDPRODUCTNAMEPRODUCTPRICEPRODUCEADDRESS
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

 

 

 

分享到:
评论
2 楼 hnylj 2010-04-15  
congdepeng 写道
咕~~(╯﹏╰)b

如果你的productinfo里面的记录不是大的离谱

那么recommendproduct里面只要存一个productinfo PK就好了 无须将相同的内容重复的出现在不同的表里

甚至根本不需要recommendproduct这个表

在productinfo里面加个column,is_recommend_product (Y,N)就好啦


也许你们的内务逻辑需要这样一个表,不妨赐教。


目前productinfo这张表数据量非常庞大,而作为推荐表recommendproduct的数据大概只有几十条,所以我们希望将推荐的数据独立出来。

1 楼 congdepeng 2010-04-15  
咕~~(╯﹏╰)b


如果你的productinfo里面的记录不是大的离谱

那么recommendproduct里面只要存一个productinfo PK就好了 无须将相同的内容重复的出现在不同的表里

甚至根本不需要recommendproduct这个表

在productinfo里面加个column,is_recommend_product (Y,N)就好啦


也许你们的内务逻辑需要这样一个表,不妨赐教。



                 

相关推荐

    oracle 触发器实时调用java 中http接口

    总之,"Oracle触发器实时调用Java中HTTP接口"是一个数据库与应用程序实时通信的示例,涉及Oracle的触发器、存储过程和UTL_HTTP包,以及Java HTTP服务器的设计和实现。这样的设计需要对Oracle PL/SQL和Java网络编程有...

    oracle_触发器的种类和触发事件

    Oracle触发器是一种特殊的存储过程,它可以在数据库中自动执行一些操作,主要用于实现数据的完整性、数据的安全性和业务逻辑的实现。触发器可以分为四种类型:DML触发器、DDL触发器、替代触发器和数据库事件触发器。...

    Oracle触发器与存储过程高级编程-第3版itpub.rar

    《Oracle触发器与存储过程高级编程》第3版是一本深入探讨Oracle数据库中触发器和存储过程技术的专业书籍。在Oracle数据库系统中,触发器和存储过程是数据库管理员和开发人员进行复杂业务逻辑处理和数据管理的重要...

    oracle触发器语法要点

    接下来通过几个具体的示例来深入了解触发器的应用场景: ##### 示例1:限制周末的表更新操作 ```sql CREATE OR REPLACE TRIGGER auth_secure BEFORE INSERT OR UPDATE OR DELETE ON tb_emp BEGIN IF (to_char...

    ORACLE触发器在软件开发中的应用11

    【Oracle触发器在软件开发中的应用】 Oracle触发器在软件开发中扮演着重要的角色,特别是在数据分析和报表制作的场景下。当系统设计中存在冗余数据以满足特定需求时,触发器可以确保这些数据的完整性,防止因更新主...

    Oracle触发器与存储过程高级编程

    在深入探讨《Oracle触发器与存储过程高级编程》这一主题之前,我们首先应当明确Oracle数据库在企业级应用中的核心地位。Oracle数据库以其强大的数据处理能力、高可用性和安全性,成为众多大型企业和组织首选的数据...

    Oracle触发器详解

    下面通过一个示例来具体展示触发器的应用: 假设有一个`employees`表,我们希望在部门ID(`department_id`)更改时,如果新部门ID不等于80,则将`commission_pct`字段设置为0。 ```sql CREATE OR REPLACE TRIGGER ...

    oracle-触发器练习.pdf

    本文档收录了多个 Oracle 触发器练习,涵盖了触发器的各种应用场景和技术细节。每个练习都提供了详细的代码实现和测试结果,帮助读者更好地理解和掌握触发器的使用。 一、触发器基本概念 触发器(Trigger)是 ...

    oracle 触发器方式实现行ID自增加

    本文将深入探讨如何使用Oracle触发器来实现行ID的自增加。 首先,我们得了解什么是触发器。在Oracle中,触发器是一种数据库对象,它可以在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行预先定义的...

    oracle触发器的创建和跨数据库查询.zip

    Oracle触发器是数据库对象之一,它允许在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行一段PL/SQL代码。触发器是数据库级的程序,可以在数据更改前或后执行,用来实现复杂的业务规则和逻辑。在这个...

    oracle触发器实现二维码

    在这个场景中,我们讨论的是如何利用Oracle触发器来实现二维码的生成与存储。 首先,"oracle触发器实现二维码"这个标题意味着我们将结合Oracle数据库和二维码技术。二维码(Quick Response Code,简称QR Code)是一...

    Oracle触发器与存储过程高级编程(chm)

    在Oracle数据库中,触发器和PL/SQL存储过程是两个重要的编程元素,它们用于实现复杂的数据管理和业务逻辑。 **触发器(Triggers)** 触发器是一种数据库对象,它在特定的数据库事件(如INSERT、UPDATE或DELETE)...

    oracle触发器实现主键自动增长

    在Oracle数据库中,实现主键自动增长是一种常见的需求,尤其在设计高并发、大数据量的系统时,确保每个记录都有一个唯一且连续的标识符变得至关重要。本文将深入探讨如何利用Oracle触发器来实现这一功能,同时也会...

    oracle中记录用户登录信息的触发器的例子

    本文将通过一个具体的例子来展示如何在Oracle数据库中创建一个触发器,用于自动记录用户的登录信息。 #### 二、需求分析与设计 假设我们正在为一家企业开发一个基于Oracle数据库的安全管理系统。为了提高系统的...

    Oracle触发器

    Oracle触发器是数据库管理系统Oracle中的一个重要特性,它允许在特定事件(如数据修改DML操作:INSERT、UPDATE或DELETE)发生时自动执行预定义的PL/SQL代码块。触发器可以用来实现复杂的业务规则,审计跟踪,或者在...

    ORACLE触发器在信息系统安全方面的应用.pdf

    【Oracle触发器在信息系统安全方面的应用】 Oracle触发器是一种数据库对象,它能够在特定的数据操作(如INSERT、UPDATE、DELETE)发生时自动执行预定义的PL/SQL代码,从而实现对数据库系统的深度控制和安全性增强。...

    触发器使用教程和命名规范

    Oracle 触发器的应用场景: * 数据库的一致性控制,例如检查员工信息的正确性和一致性。 * 数据库的安全控制,例如检查用户的权限和身份验证。 * 数据库的数据备份和恢复,例如在备份和恢复过程中执行触发器。 ...

    Oracle自增序列和触发器生成工具.zip

    在我们的场景中,我们可能需要一个触发器来在插入新记录时自动获取序列的下一个值并赋给主键字段。以下是一个简单的触发器示例,用于在`MY_TABLE`表的`ID`字段上应用`MY_SEQ`序列: ```sql CREATE TRIGGER MY_TABLE...

Global site tag (gtag.js) - Google Analytics