一、觸發器介紹
觸發器(trigger), 事先為某張表綁定好一些代碼, 當這張表數據發生改變時,系統會自動調用這些綁定的代碼.
事件類型:insert, delete, update
觸發時間:befor, after
事件對象:表中的每一條記錄(針對行的)
每張表中最多只能有6個觸發器。(事件類型和觸發時間共有6種組合,每種組合只能有一個)
二、創建觸發器
-- 創建觸發器 delimiter $$ create trigger 觸發器名字 after insert on 事件對象(表名) for each row begin update goods set cnt = cnt - 1 where id = 1; -- SQL語句 end $$ delimiter ;
三、查看觸發器
1. show triggers [like 'pattern'];
2. show create triggers 觸發器名字;
3. 所有觸發器都保存在一張表中:information_schema.triggers
select * from information_schema.triggers;
四、刪除觸發器
drop trigger 觸發器名字;
五、觸發器的記錄
不管觸發器是否觸發了, 只要當某種操作准備執行, 系統就會把准備操作的記錄的當前狀態和操作即將完成后的狀態保存下來:
當前狀態保存在old中; -- insert是只有new, 使用方法:old.字段名
將來的狀態保存在new中; -- delete時只有old, new.字段名
