एकाधिक तालिका अपडेट का उपयोग करना

पिछले अध्याय में, हमने कई तालिकाओं का उपयोग करने के बारे में चर्चा की है। इसलिए हम एक कदम आगे बढ़ते हैं और सीखते हैंmultiple table updates इस पाठ में।

SQLAlchemy की तालिका ऑब्जेक्ट का उपयोग करते हुए, एक से अधिक तालिका को अपडेट () विधि के WHERE क्लॉज में निर्दिष्ट किया जा सकता है। PostgreSQL और Microsoft SQL सर्वर UPDATE कथनों का समर्थन करते हैं जो कई तालिकाओं का संदर्भ देते हैं। यह लागू करता है“UPDATE FROM”सिंटैक्स, जो एक बार में एक टेबल को अपडेट करता है। हालांकि, अतिरिक्त तालिकाओं को सीधे "अतिरिक्त" खंड में संदर्भित किया जा सकता है, जहां सीधे खंड में। कोड की निम्नलिखित पंक्तियों की अवधारणा को समझाते हैंmultiple table updates स्पष्ट रूप से।

stmt = students.update().\
values({
   students.c.name:'xyz',
   addresses.c.email_add:'[email protected]'
}).\
where(students.c.id == addresses.c.id)

अद्यतन वस्तु निम्नलिखित अद्यतन क्वेरी के बराबर है -

UPDATE students 
SET email_add = :addresses_email_add, name = :name 
FROM addresses 
WHERE students.id = addresses.id

जहां तक ​​MySQL बोली का संबंध है, एकाधिक तालिकाओं को एक एकल अद्यतन कथन में एम्बेड किया जा सकता है जो नीचे दिए गए अल्पविराम द्वारा अलग किया गया है -

stmt = students.update().\
   values(name = 'xyz').\
   where(students.c.id == addresses.c.id)

निम्न कोड में परिणामी क्वेरी क्वेरी को दर्शाया गया है -

'UPDATE students SET name = :name 
FROM addresses 
WHERE students.id = addresses.id'

हालाँकि SQLite बोली UPDATE के भीतर कई-तालिका मानदंडों का समर्थन नहीं करती है और निम्न त्रुटि दिखाती है -

NotImplementedError: This backend does not support multiple-table criteria within UPDATE