# MySQL TRIGGER

* 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`