什麼是觸發器
觸發器(trigger)是MySQL提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與表事 件相關的特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,比如當對 一個表進行操作作(insert,delete, update)時就會啟用它執行。
觸發器建立的四個要素
1. 監視地點(table)
2. 監視事件(insert/update/delete)
3. 觸發時間(before/after
4. 觸發事件(insert/update/delete)
建立觸發器
1)語法格式
CREATE TRIGGER Trigger_Name -- 觸發器名,在一個資料庫中觸發器名是唯一的
before/after(insert/update/delete) -- 觸發的時機 和 監視的事件
on table_Name -- 觸發器所在的表
for each row -- 固定寫法 叫做行觸發器, 每一行受影響,觸發事件都執行
begin(可選引數,根據mysql版本決定)
-- begin和end之間寫觸發事
end(可選引數,根據mysql版本決定)
報錯資訊
系統會報這樣的錯誤:it is already used by statement which invoked this stored function/trigger.
觸發器針對同一張表時,不需要寫完整的sql語句,只要使用 `set`語句即可(set new.name=a)
系統會報這樣的錯誤: ERROR 1362 (HY000): Updating of NEW row is not allowed in after trigger
觸發器不允許在插入資料後(`after`事件),對插入的資料進行更新操作.
本作品採用《CC 協議》,轉載必須註明作者和本文連結