MySQL觸發器如何判斷條件不滿足不執行並丟擲異常

2021-09-29 12:25:59 字數 475 閱讀 6396

在寫實驗時,現有表:現有庫存、訂單

需要建立乙個觸發器,在更新訂單前需要判斷庫存是否足夠,若不夠則輸出且回滾。

上面是實驗要求的助教的原話,但我在實際寫的時候,發現自己被這個助教師兄坑了。

這是我開始寫的:

然後我在貼吧中了解到:觸發器中不能有commit; 回滾這種事務語句。

這是貼吧位址

然後該怎麼辦呢?我直接刪掉了rollback語句。再檢測發現,如果庫存不夠signal「not enough goods」後,上面的update自動就沒有執行。所以只需

set msg='not enough goods';

signal sqlstate 'hy000' set message_text=msg;

即可。

mysql條件觸發器例項 mysql觸發器例項一則

例子,例項學習mysql觸發器的用法。一,準備二張測試表 1,測試表1 複製 示例 drop table if exists test create table test id bigint 11 unsigned not null auto increment,name varchar 100 n...

觸發器 mysql觸發器

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

my sql 觸發器 mysql建立觸發器

首先,我們來了解一下什麼是觸發器,觸發器,就是在對一張表資料進行增 insert 刪 delete 改 update 的時候,為了保持資料的一致性,對別的表也要進行相應的資料修改。我們都知道mysql最後事務提交後,資料是會儲存到磁碟上的,那麼每次在insert,delete,update時候舊資料...