In simplicity Trigger's are used to perform some database operation if any defined event occurs on a specific table. Trigger call on Insert, Update and delete operation on before/after these event completed. To grab data we have to keyword new and old.
INSERT: new
UPDATE: new/old
DELETE: old
Syntax for creating trigger:
CREATE TRIGGER triger_name
BEFORE | AFTER event ON table_name
BEGIN
...
END;
example:
DELIMITER $$
CREATE TRIGGER updatedata
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
UPADTE history
SET old_sal=old.sal where emp_id=old.emp_id;
END$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER name_add
BEFORE UPDATE ON employees
FOR EACH ROW
BEGIN
SET new.name=concat(new.salut,' ',new.fname,' ',new.lname);
END$$
DELIMITER ;
mysql> delimiter //
mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON account
-> FOR EACH ROW
-> BEGIN
-> IF NEW.amount < 0 THEN
-> SET NEW.amount = 0;
-> ELSEIF NEW.amount > 100 THEN
-> SET NEW.amount = 100;
-> END IF;
-> END;//
mysql> delimiter ;
sql to see all triggers : SHOW TRIGGERS;
sql to drop trigger: DROP TRIGGER trigger_name;
INSERT: new
UPDATE: new/old
DELETE: old
Syntax for creating trigger:
CREATE TRIGGER triger_name
BEFORE | AFTER event ON table_name
BEGIN
...
END;
example:
DELIMITER $$
CREATE TRIGGER updatedata
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
UPADTE history
SET old_sal=old.sal where emp_id=old.emp_id;
END$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER name_add
BEFORE UPDATE ON employees
FOR EACH ROW
BEGIN
SET new.name=concat(new.salut,' ',new.fname,' ',new.lname);
END$$
DELIMITER ;
mysql> delimiter //
mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON account
-> FOR EACH ROW
-> BEGIN
-> IF NEW.amount < 0 THEN
-> SET NEW.amount = 0;
-> ELSEIF NEW.amount > 100 THEN
-> SET NEW.amount = 100;
-> END IF;
-> END;//
mysql> delimiter ;
sql to see all triggers : SHOW TRIGGERS;
sql to drop trigger: DROP TRIGGER trigger_name;
No comments:
Post a Comment