教程 > db2 教程 > 阅读:56

db2 触发器——迹忆客-ag捕鱼王app官网

本章描述触发器、它们的类型、触发器的创建和删除。

简介

触发器是一组操作,执行这些操作是为了响应对数据库中指定表的 insert、update 或 delete 操作。触发器立即存储在数据库中。 他们处理数据治理。 它们可以在多个应用程序之间访问和共享。 使用触发器的好处是,如果需要在应用程序中进行任何更改,它会在触发器处完成; 而不是更改访问触发器的每个应用程序。 触发器易于维护,并且可以加快应用程序开发速度。 触发器是使用 sql 语句“create trigger”定义的。


触发器类型

有两种类型的触发器:

  1. before 触发器:它们在任何 sql 操作之前执行。
  2. after 触发器:它们在任何 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

查看笔记

扫码一下
查看教程更方便
网站地图