在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ DB2觸發(fā)器
DB2表空間
DB2序列
DB2數(shù)據(jù)類型
DB2教程
DB2 LDAP
DB2模式
DB2數(shù)據(jù)庫安全
DB2與XML
DB2角色
DB2表
DB2數(shù)據(jù)庫
DB2視圖
DB2實例
DB2服務器安裝
DB2緩沖池
DB2索引
DB2別名/alias
DB2備份和恢復
DB2約束
DB2觸發(fā)器
DB2存儲組

DB2觸發(fā)器

本章介紹觸發(fā)器,它們的類型,創(chuàng)建和刪除觸發(fā)器。

觸發(fā)器是一組動作,在數(shù)據(jù)庫響應INSERT,UPDATE或DELETE操作上指定的表執(zhí)行。觸發(fā)器都在數(shù)據(jù)庫中存儲一次。他們處理的數(shù)據(jù)管理。它們可以被訪問并在多個應用程序共享。使用觸發(fā)器的優(yōu)點是,任何變化需要在應用程序完成的,它完成在觸發(fā);而不是改變正在訪問觸發(fā)每個應用程序。觸發(fā)器易于維護以及更快地強制應用程序的開發(fā)。觸發(fā)器使用SQL語句“CREATE TRIGGER”定義。

觸發(fā)器類型

有三種類型的觸發(fā)器:

1.BEFORE觸發(fā)器

在任何SQL操作之前執(zhí)行。

2. AFTER觸發(fā)器

在任何SQL操作之后執(zhí)行。

創(chuàng)建BEFORE觸發(fā)器

讓我們來看看如何創(chuàng)建觸發(fā)器的序列:

語法:

db2 create sequence <seq_name> 

例如:用于創(chuàng)建表shopper.sales1序列的觸發(fā)器

db2 create sequence sales1_seq as int start with 1 increment by 1 

語法:

db2 create trigger <trigger_name> no cascade before insert on 
<table_name> referencing new as <table_object> for each row set 
<table_object>.<col_name>=nextval for <sequence_name> 

示例:創(chuàng)建觸發(fā)器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

現(xiàn)在嘗試插入任何值:

db2 insert into shopper.sales1(itemname, qty, price) 
values('bicks', 100, 24.00) 

從表中檢索值

讓我們來看看如何從表中檢索值:

語法

db2 select * from <tablename>

示例:

db2 select * from shopper.sales1

輸出:

  ID       ITEMNAME       QTY 
-------  ------------   ---------- 
    3      bicks            100 
    2      bread            100 
  
  2 record(s) selected. 

創(chuàng)建AFTER觸發(fā)器

讓我們來看看如何建立一個after觸發(fā)器:

語法

db2 create trigger <trigger_name> no cascade before insert on 
<table_name> referencing new as <table_object> for each row set
 <table_object>.<col_name>=nextval for <sequence_name> 

示例:[插入和檢索值]

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. 

刪除觸發(fā)器

下面是一個數(shù)據(jù)庫的觸發(fā)器被刪除:

語法

db2 drop trigger <trigger_name>  

例子:

db2 drop trigger slaes1_trigger   

上一篇:DB2別名/alias下一篇:DB2緩沖池