# MySQL TRIGGER ![](https://i.imgur.com/8krSVnQ.png) * OLD 與 NEW * 「OLD.欄位名稱」: 修改或刪除前的欄位值 * 「NEW.欄位名稱」: 修改後或新增的欄位值 * 範例:使用 OLD 保存将要被删除的行到一个存档表中 ```sql= CREATE TRIGGER deleteorder BEFORE DELETE ON orders FOR EACH ROW BEGIN INSERT INTO archive_orders(order_num, order_date, cust_id) VALUES(OLD.order_num, OLD.order_date, OLD.cust_id); END; ``` * 範例:保证更新州名缩写总是大写(不管UPDATE语句中给出的是大写还是小写) ```sql= CREATE TRIGGER updatevendor BEFORE UPDATE ON vendors FOR EACH ROW SET NEW.vend_state = Upper(NEW.vend_state); ``` ###### tags: `MySQL`