Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

क्या एक सम्मिलित ट्रिगर को एक प्रतिबद्ध कथन की आवश्यकता है

न केवल ट्रिगर्स को एक COMMIT की आवश्यकता नहीं है जिसे आप इसमें नहीं डाल सकते हैं:यदि शरीर के कोड में COMMIT (या रोलबैक) शामिल है तो ट्रिगर संकलित नहीं होगा।

ऐसा इसलिए है क्योंकि लेन-देन के दौरान आग लग जाती है। जब ट्रिगर सक्रिय होता है तो वर्तमान लेनदेन अभी भी पूरा नहीं हुआ है। चूंकि COMMIT एक लेन-देन को समाप्त कर देता है, जिससे उन्हें ट्रिगर में अनुमति देने से कार्य की इकाई टूट जाएगी।

तो एक ट्रिगर में निष्पादित परिवर्तन स्वयं के लेन-देन द्वारा प्रतिबद्ध (या रोल बैक) किए जाते हैं जिसने ट्रिगर को निकाल देने वाले डीएमएल को जारी किया था।

यह सच है कि ट्रिगर PRAGMA AUTONOMOUS_TRANSACTION के तहत चल सकते हैं, इस स्थिति में उनके पास COMMIT होना चाहिए। लेकिन यह एक बढ़त का मामला है, क्योंकि Oracle में नेस्टेड लेनदेन के कुछ सार्थक उपयोग हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle से PostgreSQL में माइग्रेट करने के शीर्ष दस कारण

  2. जब मैं तुलना में उनका उपयोग करना चाहता हूं तो मुझे पीएल/एसक्यूएल संग्रहीत प्रक्रिया में शून्य पैरामीटर से कैसे निपटना चाहिए?

  3. खंड बनाम <=और>=. के बीच

  4. स्प्रिंग डेटा रिपॉजिटरी में Oracle मटेरियलाइज्ड व्यू को रिफ्रेश करें

  5. .NET . का उपयोग करके Oracle में बल्क इंसर्ट