उत्तर है ट्रिगर सुरक्षित नहीं हैं ।
यह पता चला है कि ट्रिगर वास्तव में अन्य लेनदेन में किए गए असामान्य परिवर्तन नहीं देखता है और बिना किसी त्रुटि के गुजरता है। इसे इस तरह प्रदर्शित किया जा सकता है
लेन-देन 1:
START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,1); -- query A
लेन-देन 2:
START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,2); -- query B; in conflict with A, but passses
दोनों लेन-देन:
COMMIT;
अब plays_in
इसमें दोनों सम्मिलित रिकॉर्ड शामिल होंगे, भले ही ए और बी को एक ही लेनदेन में निष्पादित किया गया हो, ट्रिगर एक त्रुटि फेंक देगा।
संपूर्ण उदाहरण स्रोत यहां प्राप्त किए जा सकते हैं