在MySQL數據庫中,創建觸發器需要使用CREATE TRIGGER
語句。以下是一個簡單的示例,說明如何創建一個觸發器。
首先,我們需要創建一個表作為示例:
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
salary DECIMAL(10, 2) NOT NULL,
department_id INT
);
接下來,我們將創建一個名為salary_check
的觸發器,該觸發器將在向employees
表插入新記錄之前檢查工資值。如果工資低于最低工資(例如,5000),則觸發器將阻止插入操作并顯示錯誤消息。
DELIMITER //
CREATE TRIGGER salary_check
BEFORE INSERT
ON employees FOR EACH ROW
BEGIN
IF NEW.salary < 5000 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Error: Salary cannot be less than 5000';
END IF;
END;
//
DELIMITER ;
在這個示例中,我們使用了以下關鍵字和語法:
DELIMITER
:用于更改語句結束符,以便在觸發器定義中使用分號。CREATE TRIGGER
:用于創建觸發器。BEFORE INSERT
:指定觸發器在插入操作之前執行。ON employees
:指定觸發器與employees
表關聯。FOR EACH ROW
:指定觸發器將為每一行執行一次。BEGIN...END
:包含觸發器的主體。IF...THEN
:條件判斷語句。SIGNAL
:用于拋出自定義錯誤。現在,當您嘗試插入工資低于5000的員工記錄時,觸發器將阻止操作并顯示錯誤消息。