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

सत्र.क्वेरी का उपयोग करके SQLAlchemy ORM के माध्यम से तालिका में शामिल होना अपडेट करें

संस्करण 0.7.4 के अनुसार sqlalchemy.sql.expression.update आपको WHERE क्लॉज में एकाधिक तालिकाओं को संदर्भित करने की अनुमति देता है। इसके साथ, आप एक एक्सप्रेशन बना सकते हैं और निष्पादित कर सकते हैं जैसे:

users.update().values(name='ed').where(
        users.c.name==select([addresses.c.email_address]).\
                    where(addresses.c.user_id==users.c.id).\
                    as_scalar()
        )

(ऊपर दिए गए लिंक से सीधे उदाहरण)

ValAyal की समस्या वास्तव में इसलिए है क्योंकि Query.join() Query.update() के साथ समर्थित नहीं है . दुर्भाग्य से, 0.9.1 तक यह चुपचाप ऊपर साझा किए गए ValAyal जैसे प्रश्नों को उत्पन्न कर रहा था। 0.9.1 के लिए चेंजलॉग नोट नोट करता है कि व्यवहार को चेतावनी देने के लिए संशोधित किया गया था:

हम वास्तव में इसमें भाग गए जहां मैं आज शाम को काम करता हूं और पाया कि हमारा कोड वास्तव में निम्नलिखित चेतावनी दे रहा है (जो कहता है कि यह 1.0 में एक त्रुटि होगी):

SAWarning: Can't call Query.update() or Query.delete() when join(), outerjoin(), select_from(), or from_self() has been called.  This will be an exception in 1.0
  self._validate_query_state()

हमारे मामले में, हमने अपडेट को चुनिंदा में और अपडेट को एक टेबल में बदलने का विकल्प चुना है।



  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 में int(11) के कॉलम का आकार क्या है?

  2. SQL के लिए एकाधिक क्वेरी कैसे करें

  3. MySQL CRC32 () फ़ंक्शन – उदाहरण

  4. तैयार कथन के साथ MySQL अद्यतन क्वेरी त्रुटि दे रही है

  5. ग्रुप बाय के साथ mysql पिवट क्वेरी परिणाम