2016-09-29 11 views
12

पर पूछे बिना आप एकाधिक पंक्तियों को कैसे हटाते हैं मेरे पास एक सारणी है जिसमें लाखों पंक्तियां हैं। मैं खंड में एक से अधिक पंक्तियों को हटाना चाहता हूं। हालांकि, कोड का उपयोग:SQLAlchemy:

session.query(Users).filter(Users.id.in_(subquery....)).delete() 

ऊपर कोड परिणाम क्वेरी करेगा, और फिर हटाएं निष्पादित। मैं ऐसा नहीं करना चाहता। मुझे गति चाहिए

मैं निष्पादित करने में सक्षम होना चाहता हूँ (हाँ मैं session.execute के बारे में पता): Delete from users where id in()

तो प्रश्न: कैसे मैं दो दुनिया का सबसे अच्छा प्राप्त कर सकते हैं, ORM का उपयोग कर? क्या मैं क्वेरी को कड़ी मेहनत किए बिना हटा सकता हूं?

उत्तर

16

हाँ! आप संबंधित ऑब्जेक्ट के साथ तालिका ऑब्जेक्ट पर delete() पर कॉल कर सकते हैं।

कुछ इस तरह:

stmt = Users.__table__.delete().where(Users.id.in_(subquery...))

(और उसके बाद मत भूलना बयान निष्पादित करने के लिए: engine.execute(stmt))

source

+0

आप दाईं ओर थे! बहुत बढ़िया। आपका बहुत बहुत धन्यवाद! –