न केवल ट्रिगर्स को एक COMMIT की आवश्यकता नहीं है जिसे आप इसमें नहीं डाल सकते हैं:यदि शरीर के कोड में COMMIT (या रोलबैक) शामिल है तो ट्रिगर संकलित नहीं होगा।
ऐसा इसलिए है क्योंकि लेन-देन के दौरान आग लग जाती है। जब ट्रिगर सक्रिय होता है तो वर्तमान लेनदेन अभी भी पूरा नहीं हुआ है। चूंकि COMMIT एक लेन-देन को समाप्त कर देता है, जिससे उन्हें ट्रिगर में अनुमति देने से कार्य की इकाई टूट जाएगी।
तो एक ट्रिगर में निष्पादित परिवर्तन स्वयं के लेन-देन द्वारा प्रतिबद्ध (या रोल बैक) किए जाते हैं जिसने ट्रिगर को निकाल देने वाले डीएमएल को जारी किया था।
यह सच है कि ट्रिगर PRAGMA AUTONOMOUS_TRANSACTION के तहत चल सकते हैं, इस स्थिति में उनके पास COMMIT होना चाहिए। लेकिन यह एक बढ़त का मामला है, क्योंकि Oracle में नेस्टेड लेनदेन के कुछ सार्थक उपयोग हैं।