觸發器是在數據庫中定義的一種特殊類型的存儲過程,它會在特定的數據庫操作(如插入、更新、刪除)發生時自動執行。觸發器可以用來實現數據完整性約束、自動化任務和業務邏輯等功能。
在SQL中,觸發器可以使用CREATE TRIGGER語句來創建。觸發器可以在表級別或視圖級別定義,并且可以在INSERT、UPDATE、DELETE等操作之前或之后觸發。觸發器可以使用OLD和NEW關鍵字引用被影響的行的舊值和新值。
下面是一個簡單的觸發器示例,該觸發器會在插入新記錄時自動更新另一個表的相關列:
CREATE TRIGGER update_salary
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
UPDATE department
SET total_salary = total_salary + NEW.salary
WHERE department_id = NEW.department_id;
END;
在這個示例中,當在employees表插入新記錄時,觸發器會自動更新department表的total_salary列,增加新記錄的salary值。通過使用觸發器,可以確保數據的完整性和一致性,同時減少重復的編碼工作。