MySQL ট্রিগারে DELIMITER // স্টেটমেন্টের ডিলিমিটার সেমিকোলন (;) থেকে ডবল স্ল্যাশ (//) এ পরিবর্তন করে। এর ফলে ট্রিগারের ভেতরে একাধিক সেমিকোলনযুক্ত স্টেটমেন্ট লেখা যায়।
উদাহরণ: কর্মচারীর বেতন ১০০০-এর কম হলে স্বয়ংক্রিয়ভাবে ১০০০০ সেট করার ট্রিগার।
টেবিল তৈরি:
mysql> CREATE TABLE EmployeeTable (
-> EmployeeId INT,
-> EmployeeName VARCHAR(100),
-> EmployeeSalary FLOAT
-> );
ট্রিগার তৈরি:
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 //
mysql> DELIMITER ;
টেস্ট করুন (বেতন ৫০০ দিলে):
mysql> INSERT INTO EmployeeTable VALUES(1, 'Carol', 500);
ফলাফল:
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Carol | 10000 | +------------+--------------+----------------+
বেতন ১০০০ বা তার বেশি দিলে যেন যেনই থাকে:
mysql> TRUNCATE TABLE EmployeeTable; mysql> INSERT INTO EmployeeTable VALUES(2, 'Bob', 1000); mysql> INSERT INTO EmployeeTable VALUES(3, 'Carol', 2500); mysql> SELECT * FROM EmployeeTable;
ফলাফল:
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 2 | Bob | 1000 | | 3 | Carol | 2500 | +------------+--------------+----------------+