程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL數據庫觸發器(trigger)

MySQL數據庫觸發器(trigger)

編輯:MySQL綜合教程

MySQL數據庫觸發器(trigger)


MySQL觸發器(trigger):監視某種情況並觸發某種操作

一:四要素

觸發時間:before/after

地點:table

監視操作:insert/update/delete

觸發操作:insert/update/delete

二:創建觸發器

delimiter $ #將sql結束符改為$ 方便寫觸發的sql語句

create trigger triggerName after/before insert/update/delete on tableName

for each row

begin

sql語句; #想要觸發的語句

end$

測試表:商品表(g),訂單表(o)

三:刪除監視器

drop trigger triggerName

四:下定單(o),商品表(g)數據觸發更新

create trigger tg after insert on o

for each row

begin

update g set num=num-new.much where id=new.gid;

end$

PS:對於監視操作insert 而言,新增的行用new 表示

行中的每一列的值,用new.列名 取出

五:刪除一個訂單,商品表相應增加

create trigger tg after delete on o

for each row

begin

update g set num=num+old.much where id=old.gid;

end$

六:修改一個訂單,商品表相應改變

create trigger tg after update on o

for each row

begin

update g set num=num+old.much-new.much where id=old.gid;

end$

七:after與before區別

after 是先完成數據的增刪改,再觸發,前面的數據操作完成

before是先觸發,判斷觸發的條件是否滿足,再對數據進行增刪改操作

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved