科技行者

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

知识库

知识库 安全导航

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

在DB2中创建第一个触发器

  • 扫一扫
    分享文章到微信

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

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

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

关键字: IBM 数据库 DB2

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

转帐
如果储蓄帐户的余额数目足够补偿超出的数目,这时就会发生转帐。如果满足这种条件,我们将对新行作两处修改:

  1. 修改 "new row" 的 savingbalance 列,将其减去 overage 以促成透支转帐。
  2. 将支票帐户的余额设置为 0。我们使用下面的代码来完成:

else set newrow.savingbalance = oldrow.savingbalance-overage,             
newrow.checkingbalance = 0; end if;

最终结果
可以再次通过 Show SQL按钮来看看最后的结果:

图 11.显示 SQL
Figure 11.

在点击 Close之后,您将看到 OVERDRAFT 触发器已经创建好了:

图 12. 创建 OVERDRAFT 触发器
Figure 12.

测试
可以通过一个 update 语句来进行测试。打开命令行编写下面的语句:

db2=> update accttable set checkingbalance = -500 where ssn='111-11-1111'

根据我们创建的业务逻辑,这个 update 操作将启动该触发器,由于支票帐户透支,该触发器将从 savingbalance 列取出 500.00 到支票帐户。因此,SSN 为 111-11-1111 的帐户的 checkingbalance 会变成 0.00 而 savingbalance 将变成 1000.00(原来的余额 1500 - 透支的 500)。下面的查询验证了该结果:

图 13. 查询
Figure 13.

尾声
您已经在一个假想的业务场景中创建了一个 DB2 触发器。触发器是 DB2 数据库的一个非常强大的特性,您可以使用它将业务逻辑分化到关系数据库这边。如果考虑到有多个应用程序都将与同一个数据库进行交互,您就会发现这种分化是非常强大的。在一个大型企业中,您可能多次遇到过这样的情况,即不知道要创建的是怎样一个将与数据库交互的应用程序。与其只是希望这些应用程序遵守被认为是您的组织机构的戒律的业务规则,还不如使用触发器作为您工具箱中的一种工具,以确保现在和将来与数据库进行交互的所有的应用程序强制遵守这些业务规则。一个触发器只能关联一个表,而不能关联一个视图。您也许可以考虑使用 INSTEAD OF 触发器来与视图交互。

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

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

    重磅专题
    往期文章