ทริกเกอร์เป็นข้อกำหนดสำหรับกฎความสมบูรณ์ของข้อมูลที่ซับซ้อน สิ่งเหล่านี้ไม่สามารถบังคับใช้ได้ทุกที่ยกเว้นฐานข้อมูลมิฉะนั้นคุณจะมีปัญหาเรื่องความถูกต้องของข้อมูล
นอกจากนี้ยังเป็นสถานที่ที่ดีที่สุดสำหรับการตรวจสอบนอกจากว่าคุณไม่ต้องการบันทึกการเปลี่ยนแปลงทั้งหมดในฐานข้อมูล (ซึ่งเป็นปัญหาของการตรวจสอบจากแอปพลิเคชัน)
ทริกเกอร์อาจทำให้เกิดปัญหาด้านประสิทธิภาพหากไม่เขียนอย่างระมัดระวังและผู้พัฒนาไม่เพียงพอที่จะมีความรู้เพียงพอที่จะเขียนได้ดี นี่เป็นส่วนหนึ่งของที่พวกเขาแร็พไม่ดี
ทริกเกอร์มักจะช้ากว่าวิธีอื่นในการรักษาความถูกต้องของข้อมูลดังนั้นหากคุณสามารถใช้ข้อ จำกัด การตรวจสอบให้ใช้สิ่งนั้นแทนทริกเกอร์
มันง่ายที่จะเขียนทริกเกอร์ที่ไม่ดีที่ทำสิ่งที่โง่เช่นพยายามส่งอีเมล คุณต้องการที่จะไม่สามารถเปลี่ยนบันทึกในฐานข้อมูลได้จริงหรือไม่หากเซิร์ฟเวอร์อีเมลหยุดทำงาน?
ในเซิร์ฟเวอร์ SQL ทริกเกอร์ทำงานในชุดของระเบียน นักพัฒนาทั้งหมดมักคิดว่าพวกเขาเพียงแค่ต้องจัดการกับการแทรกการอัพเดทหรือการลบ นั่นไม่ใช่การเปลี่ยนแปลงข้อมูลชนิดเดียวที่เกิดขึ้นกับฐานข้อมูลและทริกเกอร์ทั้งหมดควรทดสอบภายใต้เงื่อนไขของการบันทึก 1 รายการและการเปลี่ยนแปลงหลายรายการ การลืมที่จะทำการทดสอบครั้งที่สองสามารถนำไปสู่ทริกเกอร์ที่มีประสิทธิภาพต่ำมากหรือการสูญเสียความสมบูรณ์ของข้อมูล