CREATE TRIGGER是用來創建觸發器的SQL命令。
觸發器是一種特殊的數據庫對象,它可以在特定的數據庫事件發生時自動執行一系列的SQL語句。觸發器可以用于實現數據的自動更新、數據一致性的檢查和維護、日志記錄等功能。
CREATE TRIGGER的語法如下:
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
FOR EACH ROW
BEGIN
– 觸發器執行的SQL語句
END;
其中,
trigger_name:觸發器的名稱。
BEFORE/AFTER:指定觸發器是在觸發事件之前還是之后執行。
INSERT/UPDATE/DELETE:指定觸發器是在插入、更新還是刪除數據時觸發。
table_name:觸發器所屬的表名。
FOR EACH ROW:指定觸發器是針對每個被影響的行觸發,也就是說,當插入、更新或刪除一行數據時,觸發器會對該行數據進行處理。
觸發器執行的SQL語句寫在BEGIN和END之間,可以包含任意的SQL語句,如INSERT、UPDATE、DELETE、SELECT等。
以下是一個創建觸發器的例子:
CREATE TRIGGER update_salary
AFTER UPDATE
ON employees
FOR EACH ROW
BEGIN
IF NEW.salary > 10000 THEN
INSERT INTO salary_history (employee_id, salary, updated_date)
VALUES (NEW.employee_id, NEW.salary, NOW());
END IF;
END;
以上例子創建了一個名為update_salary的觸發器,當employees表中的數據更新后,如果新的薪水大于10000,觸發器會將該員工的ID、薪水和更新日期插入到salary_history表中。
注意,觸發器的創建需要具有足夠的權限。