如何在 ORDERS DB2 表上创建一个新的 TRIGGER?请给出 TRIGGER 的语法。


触发器是数据库中由事件驱动的程序,它们由数据库自动触发。触发器是使用 CREATE TRIGGER 语句创建的。

例如,我们希望创建一个触发器,在 ORDERS 表中每次插入新记录后,将 ORDERS 表的 ORDER_COMMISION 列更新为 ORDER_TOTAL 值的 5%。

示例

CREATE TRIGGER ORDERCOMMUPD AFTER INSERT ON ORDERS
FOR EACH ROW MODE DB2SQL BEGIN ATOMIC UPDATE ORDERS
SET ORDER_COMMISION=(5*ORDER_TOTAL)/100;

使用上述语句,我们创建了一个 AFTER 触发器,它将在 ORDERS 表中插入任何新行后自动触发。类似地,我们可以使用 BEFORE TRIGGER,它会在对所需表进行任何修改之前自动触发。触发器也根据触发的语句进行分类。

  • 当 INSERT 查询将数据插入 DB2 数据库时,INSERT 触发器将被执行。
  • 当 UPDATE 查询修改 DB2 数据库中的数据时,UPDATE 触发器将被激活。
  • 当 DELETE 查询从 DB2 数据库中删除数据时,DELETE 触发器将被执行。

触发器主要用于由于性能问题或复杂的业务逻辑而无法使用 CHECK 约束的情况。可以使用“CREATE TRIGGER”命令创建触发器,可以使用“DROP TRIGGER”命令删除触发器。

例如,如果我们想创建一个触发器,我们可以使用以下命令。

示例

CREATE TRIGGER ORDERDISCOUNT AFTER INSERT ON ORDERS
FOR EACH ROW MODE DB2SQL BEGIN ATOMIC UPDATE ORDERS
SET ORDER_DISCOUNT=(10*ORDER_TOTAL)/100;

可以使用以下命令删除触发器。

DROP TRIGGER ORDERDISCOUNT

更新于: 2020-12-01

401 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.