2012-11-28 16 views
7

के साथ एसक्लएल्चेमी ट्रंकेट टेबल मैं अपने ऐप के लिए ओआरएम का उपयोग कर रहा हूं, और विभिन्न डीबीएमएस के बीच बदलते समय एसक्यूएल सिंटैक्स त्रुटि से बचने के लिए एसक्यूएल का उपयोग न करने का प्रयास करें।ओआरएम

फिलहाल मैं स्क्लाइट और MySQL के साथ परीक्षण कर रहा हूं। मैं पता लगा एक मेज हम उपयोग कर सकते हैं नष्ट करने के लिए:

db.session.query(models.MyTable).delete()

दुर्भाग्य से इस पद्धति वास्तव में नहीं है क्योंकि यह 0.

को autoincrement की गिनती रीसेट नहीं है "काटना" है मेज, वहाँ है वैसे भी SqlAlchemy ओआरएम में असली छंटनी करने के लिए?

+1

अनुक्रमों को रीसेट करने की आवश्यकता संदिग्ध है, आप इसे क्यों चाहते हैं? – SingleNegationElimination

+0

मुझे स्क्लाइट और माइस्क्ल के बीच एक ही व्यवहार चाहिए क्योंकि ऐसा लगता है कि एसक्लाइट के लिए काउंटर रीसेट किया गया है जबकि mysql नहीं है। – w00d

+0

अनुक्रम को रीसेट करना स्क्लाइट के अनुक्रम अनुकरण का अधिक दोष है, मैं इसे एक बग मानता हूं! – SingleNegationElimination

उत्तर

1

SQLAlchemy delete(...) विधि SQL DELETE FROM क्वेरी में अनुवादित है। यह क्वेरी कोई भी AUTO_INCREMENT काउंटर रीसेट नहीं करता है। MySQL में एक काउंटर रीसेट करने के लिए आपको लगता है कि जैसे एक क्वेरी चलाने के लिए है:

ALTER TABLE tbl AUTO_INCREMENT = 100; 

अगर मैं भूल नहीं कर रहा हूँ, यह SQLAlchemy में कोई अनुरूप है।

संबंधित मुद्दे