扫码一下
查看教程更方便
本章描述触发器、它们的类型、触发器的创建和删除。
触发器是一组操作,执行这些操作是为了响应对数据库中指定表的 insert、update 或 delete 操作。触发器立即存储在数据库中。 他们处理数据治理。 它们可以在多个应用程序之间访问和共享。 使用触发器的好处是,如果需要在应用程序中进行任何更改,它会在触发器处完成; 而不是更改访问触发器的每个应用程序。 触发器易于维护,并且可以加快应用程序开发速度。 触发器是使用 sql 语句“create trigger”定义的。
有两种类型的触发器:
让我们看看如何创建触发器序列:
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
触发器:
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