Advanced MySQL – Triggers

Trigger என்பது Table அளவில் சில வேலைகளைத் தானியக்கமாக செய்யப் பயன்படுத்தப்படுகிறது. அதாவது table ல் தகவல்கள் செலுத்தப்படும்போதோ, தகவல்கள் மாற்றப்படும்போதோ அல்லது நீக்கப் படும் போதோ நமக்கு வேண்டியவாறு வேறு சில வேலைகளையும் சேர்த்து செய்ய வைக்கலாம். இதற்கு Trigger பயன்படுகிறது.

இதுவும் Stored Procedure போலத்தான். ஆனால் Trigger ஆனது குறிப்பிட்ட நிகழ்வின்போது தானாக அழைக்கப்படுகிறது. ஆனால் Stored Procedure ஐ தேவைப்படும் போது, நாம்தான் அழைக்கவேண்டும்.

தகவலை சேமிப்பதற்கு முன்னே சரிபார்க்கவும், Table ல் நடக்கும் மாற்றங்களை ஆராயவும் Trigger ஜ பயன்படுத்தலாம்.

Syntax:

CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name
trigger_time trigger_event
ON tbl_name FOR EACH ROW
trigger_body
trigger_time: { BEFORE | AFTER }
trigger_event: { INSERT | UPDATE | DELETE }

உதாரணம்

ITEmployees என்ற Table ல் நடக்கும் UPDATE நிகழ்ச்சிகளை வேறு ஒரு Table ல் சேர்த்து கண்காணிப்பது எப்படி என்று பார்ப்போம்.

முதலில் employees_audit என்ற ஒரு Table ஐ உருவாக்குவோம்.

CREATE TABLE employees_audit (
id int(11) NOT NULL AUTO_INCREMENT,
employeeNumber int(11) NOT NULL,
name varchar(50) NOT NULL,
changedon datetime DEFAULT NULL,
action varchar(50) DEFAULT NULL,
PRIMARY KEY (id)
);

பின்வரும் BEFORE UPDATE க்கான Trigger ஜ உருவாக்கவும்.

 

DELIMITER $$
CREATE TRIGGER before_employee_update
BEFORE UPDATE ON ITEmployees
FOR EACH ROW BEGIN
INSERT INTO employees_audit
SET action = ‘update’,
employeeNumber = OLD.Emp_ID,
name = OLD.Emp_Name,
changedon = NOW();
END$$
DELIMITER ;

 

triggers_html_867faf1
இப்போது ITEmployees என்ற Table ல் நடக்கும் UPDATE செயலுகள் யாவும் employees_audit என்ற Table ல் சேமிக்கப் படுவதைக் காணலாம்.

 

triggers_html_cf0c0ef5

இவ்வாறு எந்த ஒரு Table இலும், INSERT,UPDATE,DELETE நிகழ்வுகளின் முன்னும் பின்னும் நமக்குத் தேவையான வகையில் Trigger எழுத முடியும்.

 

Trigger பற்றி மேலும் அறிய – www.mysqltutorial.org/mysql-triggers.aspx

%d bloggers like this: