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