Skip to content

Triggers ​

Database Triggers āļŦāļĢāļ·āļ­āļ—āļĢāļīāļāđ€āļāļ­āļĢāđŒāđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ āđ€āļ›āđ‡āļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļŦāļĢāļ·āļ­āļĢāļŦāļąāļŠāļ—āļĩāđˆāļ–āļđāļāļāļģāļŦāļ™āļ”āđƒāļŦāđ‰āļ—āļģāļ‡āļēāļ™āļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāđ€āļĄāļ·āđˆāļ­āđ€āļāļīāļ”āđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒāļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ„āļ§āđ‰āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ āđ€āļŠāđˆāļ™ āļāļēāļĢāđ€āļžāļīāđˆāļĄ (INSERT), āļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ• (UPDATE), āļŦāļĢāļ·āļ­āļāļēāļĢāļĨāļš (DELETE) āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āļ•āļēāļĢāļēāļ‡āļŦāļ™āļķāđˆāļ‡āļŦāļĢāļ·āļ­āļŦāļĨāļēāļĒāļ•āļēāļĢāļēāļ‡ āļ—āļĢāļīāļāđ€āļāļ­āļĢāđŒāļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ—āļĩāđˆāļ‹āļąāļšāļ‹āđ‰āļ­āļ™ āļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ āđāļĨāļ°āļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āļāļŽāļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđ‚āļ”āļĒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī

āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ Database Triggers: ​

  • BEFORE Trigger: āļ—āļģāļ‡āļēāļ™āļāđˆāļ­āļ™āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ (INSERT, UPDATE, DELETE) āļšāļ™āļ•āļēāļĢāļēāļ‡ āđ€āļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļŦāļĢāļ·āļ­āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļāđˆāļ­āļ™āļ—āļĩāđˆāļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļ°āļ–āļđāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ
  • AFTER Trigger: āļ—āļģāļ‡āļēāļ™āļŦāļĨāļąāļ‡āļˆāļēāļāļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļšāļ™āļ•āļēāļĢāļēāļ‡ āđ€āļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āđāļĨāđ‰āļ§
  • INSTEAD OF Trigger: āļ—āļģāļ‡āļēāļ™āđāļ—āļ™āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ—āļĩāđˆāļāļģāļŦāļ™āļ” āđ€āļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ—āļĩāđˆāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ„āļ§āļšāļ„āļļāļĄāđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒāļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ­āļĒāđˆāļēāļ‡āļĨāļ°āđ€āļ­āļĩāļĒāļ”

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ‚āļ­āļ‡ Database Trigger: ​

āļŠāļĄāļĄāļ•āļīāļ§āđˆāļēāļĄāļĩāļ•āļēāļĢāļēāļ‡ employees āđāļĨāļ°āļ•āļēāļĢāļēāļ‡ audit_log āļ‹āļķāđˆāļ‡āđƒāļŠāđ‰āđ€āļāđ‡āļšāļ›āļĢāļ°āļ§āļąāļ•āļīāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļžāļ™āļąāļāļ‡āļēāļ™ āļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāđ‰āļēāļ‡ AFTER UPDATE Trigger āđ€āļžāļ·āđˆāļ­āļšāļąāļ™āļ—āļķāļāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđƒāļ” āđ† āļ—āļĩāđˆāđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āļāļąāļšāļ•āļēāļĢāļēāļ‡ employees āđ„āļ›āļĒāļąāļ‡āļ•āļēāļĢāļēāļ‡ audit_log

sql
CREATE TRIGGER record_employee_update
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
  INSERT INTO audit_log (employee_id, update_time)
  VALUES (NEW.id, NOW());
END;

āđƒāļ™āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ™āļĩāđ‰, āļ—āļļāļāļ„āļĢāļąāđ‰āļ‡āļ—āļĩāđˆāļĄāļĩāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āļ•āļēāļĢāļēāļ‡ employees, Trigger record_employee_update āļˆāļ°āļ—āļģāļ‡āļēāļ™ āđ‚āļ”āļĒāļˆāļ°āđ€āļžāļīāđˆāļĄāļšāļąāļ™āļ—āļķāļāđƒāļŦāļĄāđˆāđƒāļ™āļ•āļēāļĢāļēāļ‡ audit_log āļ—āļĩāđˆāļšāļąāļ™āļ—āļķāļ employee_id āđāļĨāļ°āđ€āļ§āļĨāļēāļ—āļĩāđˆāļĄāļĩāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•

āļ—āļĢāļīāļāđ€āļāļ­āļĢāđŒāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļĄāļĩāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļĄāļēāļāđƒāļ™āļāļēāļĢāļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ°āļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ—āļĩāđˆāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ āđāļ•āđˆāļ„āļ§āļĢāđƒāļŠāđ‰āļ”āđ‰āļ§

āļĻāļķāļāļĐāļēāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāđ„āļ”āđ‰āļ—āļĩāđˆ: ​

āļ āļēāļĐāļēāđ„āļ—āļĒ ​

English ​