日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql触发器实例 update_mysql触发器实例说明

發布時間:2023/12/20 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql触发器实例 update_mysql触发器实例说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

看以下事件:

完成下單與減少庫存的邏輯

Insert into o (gid,num) values (2,3); // 插入語句

Update g set goods_num = goods_num - 3 where id = 2;// 更新過程

這兩個邏輯可以看成一個整體,或者說, insert ---> 引來 update

用觸發器可以解決上述問題.

我們可以監視某表的變化,當發生某種變化時,觸發某個操作.

創建觸發器的語法

Create trigger triggerName

After/before insert/update/delete on 表名

For each row #這句話是固定的

Begin

Sql語句; # 一句或多句,insert/update/delete范圍內

End;

刪除觸發器的語法:

Drop trigger 觸發器名

查看觸發器

Show triggers

如何在觸發器引用行的值

對于insert而言, 新增的行 用new 來表示,

行中的每一列的值 ,用new.列名來表示.

對于 delete來說, 原本有一行,后來被刪除,

想引用被刪除的這一行,用old,來表示, old.列名,就可以引用被刪行中的值.

對于update來說,

被修改的行,

修改前的數據 ,用 old來表示, old.列名引用被修改之前行中的值

修改后的數據,用new 來表示, new.列名引用被修改之后行中的值

觸發器里after 和before的區別

After 是先完成數據的增,刪,改再觸發,

觸發的語句晚于監視的增,刪,改,無法影響前面的增刪改動作.

Before是先完成觸發,再增刪改,

觸發的語句先于監視的增,刪,改發生,我們有機會判斷,修改即將發生的操作.

典型案例:

對于所下訂單,進行判斷,如果訂單的數量 > 5 ,就認為是惡意訂單,

強制把所訂的商品數量改成5

查看哪些觸發器:

總結

以上是生活随笔為你收集整理的mysql触发器实例 update_mysql触发器实例说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。