MySQL資料庫觸發器(trigger)

來源:互聯網
上載者:User

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是先觸發,判斷觸發的條件是否滿足,再對資料進行增刪改操作

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.