Trigger Event คืออะไร
Trigger Event คืออะไร มาทำความเข้าใจง่าย ๆ กันก่อนว่าจะต้องเกิดอะไรขึ้น... จึงจะมีเหตุการณ์นี้ หรือ Trigger Event เกิดขึ้น
Trigger Event จะเกิดขึ้นก็ต่อเมื่อมีเหตุการณ์บางอย่างเกิดขึ้นกับ table , schema , database , system ตัวอย่างเช่น การใช้คำสั่ง DML อาทิเช่น insert , update , delete ที่กระทำต่อ table ที่ได้เขียน Database Trigger ผูกเอาไว้ ตัวอย่างเช่น การเปลี่ยนแปลงเงินเดือนให้กับพนักงาน เริ่มแรกหลังจากที่มีตารางข้อมูลของพนักงานแล้ว เราต้องเขียน database trigger สำหรับ back up ข้อมูลของพนักงานไว้อีกหนึ่งตาราง
- เราได้เขียน Database Trigger ตารางสำหรับ back up ข้อมูลพนักงานไว้แล้ว
- ในกรณีที่มีการเพิ่มเงินเดือนให้พนักงาน ซึ่งจะใช้การ update ข้อมูลของพนักงานที่ต้องการ ตัวอย่างเช่น ตารางข้อมูลพนักงาน (Employees)
Update Employees Set Salary=25000 Where Emp_id=’M243’ |
- หลังจากนั้น Trigger Events จะเกิดขึ้น เพราะว่ามีการใช้คำสั่ง update กับ table ที่เราได้เขียน database tringger ผูกเอาไว้ ตัวอย่างการเขียน Database Tringger ผูกเอาไว้
TRIGGER EMPLOYEES_SALARY_BACKUP //บรรทัดนี้บอกว่า สร้าง Trigger ชื่อว่า EMPLOYEES_SALARY_BACKUP
BEFORE UPDATE OF SALARY ON EMPLOYEES // ให้ Trigger ทำงานก่อนที่จะทำการ UPDATE เงินเดือนในตาราง EMPLOYEES
BEGIN
INSERT INTO employees_salary_backup
VALUES(:old.employee_id , :old.first_name||' '|| :old.last_name , :old.salary , :new.salary , sysdate , ORA_LOGIN_USER);
END; // บรรทัดนี้คือส่วนหลักที่จะทำงานเมื่อมี Trigger Events เกิดขึ้น ก็คือให้ Insert ข้อมูลลงในตาราง employees_salary_backup หรือเรียกว่าเป็นการ backup ข้อมูลนั่นเอง
|
หลังจากที่เราเขียน Database Trigger ผูกไว้แล้ว ก็จะมีการ back up ข้อมูลต่าง ๆ ไว้โดยอัตโนมัติ
*** DML เป็นภาษาจัดการข้อมูล (Data Manipulation Language : DML )
พัฒนาโปรแกรมบนเว็บ PHP บริการพัฒนา Joomla Extension พัฒนาและปรับแต่งเว็บบอร์ด phpBB