Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL จัดการข้อผิดพลาดระหว่างการทำงานของ Trigger อย่างไร

การจัดการข้อผิดพลาดของ Trigger ใน MySQL

เมื่อเกิดข้อผิดพลาดระหว่างการทำงานของ Trigger MySQL จะจัดการตามกติกาดังนี้:

  • BEFORE Trigger ล้มเหลว: การดำเนินการบนแถวที่เกี่ยวข้องจะไม่ถูกทำงาน
  • BEFORE Trigger ถูกเปิดใช้งาน: โดยการพยายามแทรกหรือแก้ไขแถว ไม่ว่าการพยายามนั้นจะสำเร็จภายหลังหรือไม่
  • AFTER Trigger จะทำงาน: ก็ต่อเมื่อ BEFORE Trigger ทั้งหมดและการดำเนินการแถวทำงานสำเร็จแล้ว
  • ข้อผิดพลาดใน BEFORE หรือ AFTER Trigger: จะทำให้คำสั่งทั้งหมดที่เรียก Trigger ล้มเหลว
  • ตารางแบบ Transactional: ความล้มเหลวของคำสั่งจะทำให้เกิด Rollback ทุกการเปลี่ยนแปลงของคำสั่งนั้น ความล้มเหลวของ Trigger ทำให้คำสั่งล้มเหลว จึงก่อให้เกิด Rollback เช่นกัน
  • ตารางแบบ Non-transactional: Rollback ไม่สามารถทำได้ ดังนั้นแม้คำสั่งจะล้มเหลว การเปลี่ยนแปลงที่เกิดขึ้นก่อนจุดที่ผิดพลาดจะยังคงมีผลอยู่