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

संग्रहीत फ़ंक्शन या प्रक्रिया को कॉल करना सम्मिलित नहीं होगा और परिवर्तन जारी रखेगा

इस विशेष उपयोग के मामले को "ऑटोकॉमिट को समझना" में अलग किया गया है:

<ब्लॉकक्वॉट>

जनरेटिव Connection.execution_options() का उपयोग करके "autocommit" व्यवहार का पूर्ण नियंत्रण उपलब्ध है Connection पर उपलब्ध कराई गई विधि , Engine , Executable , "ऑटोकॉमिट" ध्वज का उपयोग करते हुए, जो चयनित दायरे के लिए ऑटोकॉमिट को चालू या बंद कर देगा। उदाहरण के लिए, एक text() एक संग्रहित प्रक्रिया का प्रतिनिधित्व करने वाला निर्माण जो कमिट करता है उसका उपयोग कर सकता है ताकि एक SELECT स्टेटमेंट एक COMMIT जारी करे:

engine.execute(text("SELECT my_mutating_procedure()").execution_options(autocommit=True))

जिस तरह से SQLAlchemy ऑटोकॉमिट डेटा बदलने के संचालन का पता लगाता है, वह एक पैटर्न के खिलाफ बयान से मेल खाता है, UPDATE, DELETE, और इसी तरह की चीजों की तलाश में है। इसके लिए यह पता लगाना असंभव है कि कोई संग्रहीत कार्य/प्रक्रिया उत्परिवर्तन करती है या नहीं, और ऑटोोकॉमिट पर इतना स्पष्ट नियंत्रण प्रदान किया जाता है।

असफलता पर भी क्रम बढ़ा दिया जाता है क्योंकि nextval() और setval() कॉल कभी वापस नहीं ली जाती हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं नए PostgreSQL JSON डेटाटाइप के अंदर फ़ील्ड का उपयोग करके क्वेरी कैसे करूं?

  2. पूरे पन्ने के प्रभाव पर लिखता है

  3. ऑफ़सेट बनाम ROW_NUMBER()

  4. PostgreSQL में संचयी योग की गणना

  5. पोस्टग्रेज इंस्टालेशन डेटाबेस क्लस्टर इनिशियलाइज़ेशन विफल (Postgresql संस्करण 9.4.4)