में केवल अनन्य पंक्तियों को सम्मिलित करना मैं CSV फ़ाइलों से पंक्तियों के बैच को SQLite तालिका में डालने के लिए cursor.executemany
का उपयोग कर रहा हूं, जिनमें से कुछ प्राथमिक कुंजी फ़ील्ड के आधार पर डुप्लिकेट होने की उम्मीद है। जब मैं कमांड निष्पादित करता हूं, तो मुझे अनुमान लगाया जाता है कि एक ईमानदारी त्रुटि प्राप्त होती है और कुछ भी नहीं डाला जाता है।SQLite (पायथन)
मैं समय-समय पर उन्हें मैन्युअल रूप से फ़िल्टर करने के बिना चुनिंदा रूप से केवल गैर-डुप्लिकेट पंक्तियों को कैसे सम्मिलित करूं? मैं सिर्फ शुद्ध पायथन में जानता हूं कि आप केवल एक त्रुटि अपवाद बना सकते हैं और डुप्लिकेट पंक्ति को छोड़ सकते हैं - क्या इस तरह के उपयोग में कुछ ऐसा लागू हो सकता है?
आप कर सकते हैं [EAFP] (http://docs.python.org/2/glossary.html#term-eafp) प्रत्येक बैच, IntegrityError के मामले में तुम वापस गिर बजाय लाइन द्वारा लाइन डालने के लिए इस बैच के लिए execemany की; फिर, केवल प्रत्येक पंक्ति EAFP और IntegrityError को अनदेखा करें। –
ठीक है, मुझे लगता है कि मैं समझता हूं। मैं SQLite के लिए नया हूं - लेकिन क्या यह कुछ ऐसा है जो मैं इसे अधिक कुशल बनाने के लिए एक BEGIN/END लेनदेन में लपेटना चाहता हूं? – ChrisArmstrong