什么是MySQL觸發器
MySQL觸發器是一種數據庫對象,可在執行特定的INSERT、UPDATE或DELETE語句時自動觸發。當滿足定義的觸發條件時,MySQL觸發器可以執行一個預定義的操作序列。
如何創建MySQL觸發器
創建MySQL觸發器的基本語法如下:
CREATE TRIGGER trigger_name
trigger_time trigger_event
ON table_name FOR EACH ROW
BEGIN
-- 觸發器代碼
END;
其中,trigger_name是觸發器的名稱,trigger_time指定觸發器的時間(BEFORE或AFTER),trigger_event指定觸發器的事件(INSERT、UPDATE或DELETE),table_name指定生效的表名,FOR EACH ROW表示每行都會觸發。
MySQL觸發器實例
以下是創建一個MySQL觸發器的范例:
CREATE TRIGGER before_salary_update
BEFORE UPDATE ON employee
FOR EACH ROW
BEGIN
IF NEW.salary< 0 THEN
SET NEW.salary = 0;
END IF;
END;
該觸發器在employee表中,當更新salary字段之前,如果salary的新值小于0,則將其設置為0。
MySQL觸發器的應用場景
MySQL觸發器常用于以下情況:
- 數據驗證:在數據插入、更新或刪除之前執行檢查操作,以確保數據的完整性。
- 數據轉換:在數據插入、更新或刪除之前或之后進行數據轉換,以滿足特定的需求。
- 日志記錄:在數據插入、更新或刪除之后記錄數據修改的詳細信息。