CREATE TRIGGER trigger_name
trigger_time trigger_event
ON tbl_name FOR EACH ROW
trigger_stmt
BEFORE(語句前)或AFTER(語句後)INSERT/UPDATE/DELETE — 注意:INSERT觸發器也會被LOAD DATA/REPLACE激活;DELETE觸發器也響應REPLACEBEGIN ... END塊,可用存儲過程允許的語句SUPER權限創建BEFORE UPDATE)OLD.col需SELECT權限,賦值NEW.col需UPDATE權限| 操作 | OLD.col | NEW.col |
|---|---|---|
| INSERT | 無 | 新行值 |
| UPDATE | 舊值 | 新值 |
| DELETE | 舊值 | 無 |
CREATE TRIGGER update_blogs
AFTER INSERT ON blogs
FOR EACH ROW
UPDATE blogcategory
SET amount = amount + 1
WHERE cid = NEW.categoryid;
含義:blogs表發生INSERT/LOAD DATA/REPLACE時,自動將對應分類amount加1。NEW.categoryid引用新插入行的分類ID。
INSERT ... ON DUPLICATE KEY UPDATE會依次激活:BEFORE INSERT → AFTER INSERT → (若有重複鍵)BEFORE UPDATE → AFTER UPDATE。