MySQL資料庫觸發器(trigger)

來源:互聯網
上載者:User

標籤:mysql   資料庫   

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

MySQL資料庫觸發器(trigger)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.