12 Triggers

Trigger என்பது Table அளவில் சில வேலைகளைத் தானியக்கமாக செய்யப் பயன்படுத்தப்படுகிறது. அதாவது database-ல் 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 ஐ உருவாக்குவோம்.

Query – 69:

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 ஜ உருவாக்கவும்.

Query – 70:

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 ;

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

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

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

License

Share This Book

Feedback/Errata

Leave a Reply

Your email address will not be published. Required fields are marked *