MySql的初學習 -- 第十一章 -- 觸發器
阿新 • • 發佈:2021-01-24
MySql的初學習 -- 第十一章 -- 觸發器
部落格說明
文章所涉及的資料來自網際網路整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯絡本人刪除,謝謝!
什麼是觸發器
當我們執行一條sql語句的時候,這條sql語句的執行會自動去觸發執行其他的sql語句。
觸發器的建立要素
- 監視地點:table(表)
- 監視事件:insert、update、delete(DML)
- 觸發時間:before、after
- 觸發事件:insert、update、delete(DML)
建立觸發器
/*
格式:
DELIMITER $
CREATE TRIGGER 觸發器名
BEFORE(前)/AFTER (後)(insert、update、delete)
ON tableName -- 觸發器所在表
FOR EACH ROW -- 固定寫法 表示行觸發器
BEGIN
--- 被觸發的事件
END $
*/
例子:在下訂單的時候,對應的商品的庫存量要相應的減少,賣出商品之後減少庫存量。 編寫觸發器
監視的表:訂單表
監視的事件:insert
觸發時間:after
觸發事件:update
-- 1.修改結束符號
DELIMITER $
-- 2.建立觸發器
CREATE TRIGGER t1
--3.設定觸發的時間 以及監視的事件 監視的表
AFTER INSERT ON 訂單表
--4.行觸發器
FOR EACH ROW
--5.觸發後要執行的操作
BEGIN
--執行的操作
UPDATE 庫存表 SET num = num - 1 WHERE 庫存id = 4;
--6.結束
END $