再次認識mysql(六)觸發器

2021-07-23 05:02:12 字數 1527 閱讀 6652

觸發器(trigger)

進行資料庫開發時,有 當某些資料變化時,希望其他相關資料改變  的需求

利用觸發器 能夠完成這樣的動作  

觸發器是一類特殊的事務,可以監視某種資料操作(insert/update/delete)並觸發相關操作(insert/update/delete)

使用觸發器不僅可以簡化程式,而且可以增加程式的靈活性

常見應用場合

當乙個訂單產生時,訂單所購的商品庫存量相應減少  (一張表新增或刪除時,需要相關表進行同步操作)

當使用者進行欠款消費,訂單所購商品是否超過使用者最大欠款額度(表中資料與其他表資料有聯絡時)

當新訂單產生,及時通過相關人員進行處理(某張表需要跟蹤)

觸發器四要素  

監視地點table  監視事件insert/update/delete   觸發時間 after/before   觸發事件 insert/update/delete

create  trigger t1

after 

insert 

on order

for each row  每一行受到影響  觸發器都會執行 稱為行級觸發器  mysql不支援語句級觸發器

begin

update goods  set num=num-2 where gid=1;

end$   

使用delimeter 修改mysql直譯器 解釋符

對於insert  新插入的行 用new表示  被刪除的行的值 用old表示  

對於update 

create trigger t2

after 

insert 

on order

for each row

begin 

update goods set num=num-new.num where gid=new.gid;

檢視已有的triggers   show triggers  \g

刪除已有的triggers   drop  trigger name

create trigger t3

after 

delete

on order

for  each row

begin 

update goods  set num=num+old.num where gid=old.gid;

end$

create trigger t4

before

insert

on order

for each row

begin

declare rnum int; 定義變數

select num into rnum  from goods where gid=new.gid;

if new.num>rnum then

set new.much=rnum;

end if

update goods set num=num-new.num where gid=new.gid;

end$

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...

觸發器的認識

觸發器的認識 一 觸發器簡介 觸發器 trigger 是sql server 提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與表事件相關的特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,比如當對乙個表進行操作 insert,delete,update 時就會啟...

觸發器的認識

觸發器的認識 一 觸發器簡介 觸發器 trigger 是sql server 提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與表事件相關的特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,比如當對乙個表進行操作 insert,delete,update 時就會啟...