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

MySQL สามารถจัดการกับข้อผิดพลาดในระหว่างการเรียกใช้งานทริกเกอร์ได้อย่างไร


สมมติว่ามีข้อผิดพลาดเกิดขึ้นระหว่างการเรียกใช้งานทริกเกอร์ MySQL สามารถจัดการได้ดังนี้ -

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