DELIMITER // thay đổi ký tự phân cách câu lệnh từ dấu chấm phẩy (;) sang //. Điều này cho phép viết nhiều câu lệnh kết thúc bằng ; bên trong trigger mà không bị thực thi sớm.
Ví dụ: Trigger kiểm tra lương nhân viên. Nếu EmployeeSalary < 1000 thì mặc định gán = 10000.
Tạo bảng:
mysql> CREATE TABLE EmployeeTable (
-> EmployeeId INT,
-> EmployeeName VARCHAR(100),
-> EmployeeSalary FLOAT
-> );
Tạo trigger với DELIMITER //:
mysql> DELIMITER //
mysql> CREATE TRIGGER CheckSalary BEFORE INSERT ON EmployeeTable
-> FOR EACH ROW
-> BEGIN
-> IF NEW.EmployeeSalary < 1000 THEN
-> SET NEW.EmployeeSalary = 10000;
-> END IF;
-> END //
Query OK, 0 rows affected
mysql> DELIMITER ;
Kiểm tra: chèn lương 500 (< 1000):
mysql> INSERT INTO EmployeeTable VALUES (1, 'Carol', 500); mysql> SELECT * FROM EmployeeTable;
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Carol | 10000 | +------------+--------------+----------------+
Chèn lương 1000 và 2500 (≥ 1000):
mysql> TRUNCATE TABLE EmployeeTable; mysql> INSERT INTO EmployeeTable VALUES (2, 'Bob', 1000), (3, 'Carol', 2500); mysql> SELECT * FROM EmployeeTable;
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 2 | Bob | 1000 | | 3 | Carol | 2500 | +------------+--------------+----------------+
Trigger hoạt động đúng: lương < 1000 được gán mặc định 10000.