科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网›软件频道 ›在DB2中创建第一个触发器

在DB2中创建第一个触发器

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

当特定事件在 IBM DB2 Universal Database 数据库中发生时,您就可以激活 触发器来执行其他一些操作。在本文中,您将在触发器的世界里遨游,看看如何通过触发器来增强数据库中的业务规则。

来源:IT专家网 2008年6月10日

关键字: IBM 数据库 DB2

  • 评论
  • 分享微博
  • 分享邮件

图 2. 选择模式
Figure 2.

在同一个屏幕中, 需要指定一个触发器的名字。将触发器命名为 OVERDRAFT。而且,需要指定与该触发器相关的表的名字。这里选择您创建的 ACCTTABLE。

图 3. 选择您创建的表
Figure 3.

在 Time to trigger action区域中,选择 Before。

图 4. 选择 Before
Figure 4.

在 Operation that causes the trigger to be executed区域中选择 Update of columns 操作并且指定被操作列为 CHECKINGBALANCE:

图 5.
Figure 5. Specify the column name

点击 Triggered action标签页来创建该触发器:

图 6. 构建触发器
Figure 6.

指定临时变量
DB2 UDB 能够跟踪在启动触发器的那条语句之前和之后的一行的状态。请在 Correlation name for the old rows 一栏中填入 OLDROW, 在 Correlation name for the new rows 一栏中填入 NEWROW :

图 7. 指定 NEWROW
Figure 7.

注意,您也许无法指定其中的一个 correlation name,因为它依赖于引起触发器启动的特定操作和激活时间的组合。例如,假设您的触发器选择的 Time to trigger action 是 Before,触发事件是 DELETE 语句。在这种情况下,我们就无法指定一个 "Correlation name for the new rows"。为什么呢?因为在执行了一个删除操作以后,新行是不存在的。

因为您创建的触发器是在 UPDATE 之前被激活,所以不能编辑 Temporary table for the old rows 和 Temporary table for the new rows选项。

您将注意到,在这种情况下(一个在 UPDATE 之前被激活的触发器),您只能指定触发器针对 每 行而不是针对每个 语句触发。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章