DB2 触发器
本章介绍触发器,触发器的类型,触发器的创建和删除。
介绍
触发器是一组动作,用于响应数据库中指定表上的 INSERT,UPDATE 或 DELETE 操作。触发器立即存储在数据库中。他们处理数据治理。可以在多个应用程序之间访问和共享它们。使用触发器的好处是,如果需要在应用程序中进行任何更改,则在触发器处完成;而不是更改正在访问触发器的每个应用程序。触发器易于维护,并且可以加快应用程序开发的速度。触发器是使用 SQL 语句“ CREATE TRIGGER”定义的。
触发类型
有两种类型的触发器:
1.触发之前
它们在任何 SQL 操作之前执行。
2.后触发器
它们在任何 SQL 操作之后执行。
创建一个 BEFORE 触发器
让我们看看如何创建触发器序列:
句法:
db2 create sequence
示例:为表 shopper.sales1 创建触发器序列
db2 create sequence sales1_seq as int start with 1 increment by 1
句法:
db2 create trigger no cascade before insert on
referencing new as for each row set
.=nextval for
示例:为 shopper.sales1 表创建触发器以自动插入主键号
db2 create trigger sales1_trigger no cascade before insert on
shopper.sales1 referencing new as obj for each row set
obj.id=nextval for sales1_seq
现在尝试插入任何值:
db2 insert into shopper.sales1(itemname, qty, price)
values('bicks', 100, 24.00)
从表中检索值
让我们看看如何从表中检索值:
句法:
db2 select * from
范例:
db2 select * from shopper.sales1
输出:
ID ITEMNAME QTY
------- ------------ ----------
3 bicks 100
2 bread 100
2 record(s) selected.
创建一个 AFTER 触发器
让我们看看如何创建一个 After 触发器:
句法:
db2 create trigger no cascade before insert on
referencing new as for each row set
.=nextval for
示例: [要插入和检索值]
db2 create trigger sales1_tri_after after insert on shopper.sales1
for each row mode db2sql begin atomic update shopper.sales1
set price=qty*price; end
输出:
//inseting values in shopper.sales1
db2 insert into shopper.sales1(itemname,qty,price)
values('chiken',100,124.00)
//output
ID ITEMNAME QTY PRICE
----- -------------- ----------- -----------
3 bicks 100 2400.00
4 chiken 100 12400.00
2 bread 100 2400.00
3 record(s) selected.
放下扳机
这是删除数据库触发器的方式:
句法:
db2 drop trigger
例:
db2 drop trigger slaes1_trigger
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论