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

SQLAlchemy सत्र ऑब्जेक्ट में सत्र सेट करें

सत्र ईवेंट प्रत्येक नए लेनदेन पर एक मनमाना SQL कथन निष्पादित करने के लिए। आप कनेक्शन स्तर पर भी ईवेंट का उपयोग कर सकते हैं, यह आपके उपयोग के मामले पर निर्भर करता है।

यहां बताया गया है कि मैं इसे सत्र स्तर पर कैसे करूंगा:

Session = sessionmaker()
@event.listens_for(Session, 'before_flush')
def set_max_heap_table_size(session, transaction, connection):
    session.execute('SET max_heap_table_size = 1024 * 1024 * 64')

यदि आप सुनिश्चित नहीं हैं कि आपके लिए कौन सा तरीका काम करता है, तो बस उन्हें आज़माएं, कुछ परीक्षण मामले लिखें और पता करें कि क्या यह आपके लिए काम करता है।

एक चेतावनी (अनिश्चित) हो सकती है:चूंकि कनेक्शन गिराया नहीं गया है लेकिन पूल में वापस आ गया है, सेटिंग जारी रह सकती है। इस मामले में आप डिफ़ॉल्ट को पुनर्स्थापित करने के लिए कुछ संलग्न करना चाह सकते हैं, उदा। after_flush . पर प्रतिस्पर्धा। मैं इस पर पूरी तरह से निश्चित नहीं हूं, आप प्रयोग करना चाहेंगे। यदि यह अनावश्यक है, तो आप after_begin . का भी उपयोग कर सकते हैं घटना, लेकिन कोई वास्तविक before_close नहीं है ईवेंट जो इसे लपेटता है, इसलिए यह समस्याएँ पैदा कर सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एडब्ल्यूएस आरडीएस पर MySQL को PostgreSQL में माइग्रेट करना, भाग 4

  2. mysql में पंक्ति आकार बहुत बड़ी त्रुटि तालिका क्वेरी बनाएं

  3. आवृत्ति द्वारा SQL क्वेरी रिकॉर्ड ऑर्डर करें

  4. MySQL में अग्रणी और अनुगामी वर्ण कैसे निकालें?

  5. उपयोगकर्ता के लिए जावा JDBC एक्सेस अस्वीकृत