2012-02-19 17 views
9

मेरे पास 3 SQLite डीबी हैं, जिनमें प्रत्येक तालिका संरचना के संबंध में 7 टेबल का एक ही सेट है। [वे 3 अलग मशीनों से लॉग डंप हैं]।सबसे तेज़ तरीका दो SQLITE डेटाबेस मर्ज करें

मैं उन्हें एक ही SQLite डीबी में जोड़ना चाहता हूं, जिसमें वे 7 टेबल हैं, लेकिन प्रत्येक तालिका में सभी तीन डीबी से संयुक्त डेटा होना चाहिए। क्योंकि मैं उनमें से 3 में प्रश्न पूछना चाहता हूं। इसे करने का सबसे अच्छा, सबसे तेज़ तरीका क्या है।

+1

http://stackoverflow.com/questions/80801/how-can-i-merge-many-sqlite-databases, http://stackoverflow.com/questions/3689694/merge-sqlite-files- इन-वन-डीबी-फाइल-एंड-स्टार्ट-प्रतिबद्ध-प्रश्न, http://stackoverflow.com/questions/3232900/how-to-merge-n-sqlite-database-files-into-one-if-db- है-द-प्राथमिक-फ़ील्ड, http://stackoverflow.com/questions/4913369/how-to-merge-multiple-database-files-in-sqlite, http://stackoverflow.com/questions/9048711/merging- डेटाबेस, ... वहां या लिंक किए गए प्रश्नों में कुछ भी आपकी मदद नहीं करता है? – Mat

+1

हाँ, मैं उनके माध्यम से चला गया था, और कुछ और। मैं अपने पायथन कोड के भीतर ऐसा करने का मजबूत तरीका ढूंढ रहा हूं, और इसलिए मैं एक सर्वोत्तम अभ्यास की तलाश में था। – subiet

+0

@subiet, क्या होगा अगर डुप्लिकेट पंक्तियां हों? – Pacerier

उत्तर

5

प्रत्येक डेटाबेस को SQL डंप पर निर्यात करें और फिर अपने नए संयुक्त डेटाबेस में डंप आयात करें। निर्यात प्रारूप: एसक्यूएल>हो गया

जीयूआई के लिए SQLiteStudio साथ http://www.sqlite.org/cvstrac/wiki?p=ManagementTools

उदाहरण के लिए पर एक नज़र, कि हो जाएगा डाटाबेस>निर्यात डेटाबेस है।

+0

अरे, जीयूआई एक विकल्प नहीं है, इसे बार-बार एक कार्यक्रम के साथ किया जाना है। मैं एसक्यूएल डंप विधि का पता लगाऊंगा, क्या यह प्रत्येक तालिका में आईडी पर प्राथमिक कुंजी बाधा का ख्याल रखेगा, मैं उस पर थोड़ा संदिग्ध हूं। – subiet

+1

आपको प्राथमिक कुंजी निर्यात करने की आवश्यकता क्यों है? डेटा निर्यात करें और रिकॉर्ड डालें, कुंजी आपके लिए जेनरेट की जाएगी। यदि आप इसे पायथन में करना चाहते हैं तो http://mysql-python.sourceforge.net/MySQLdb.html#some-examples और http://www.kitebird.com/articles/pydbapi.html पर एक नज़र डालें – ccpizza

6

यहां एक ही संरचना के सभी तालिकाओं के साथ दो डेटाबेस मर्ज करने का एक तरीका है। मुझे उम्मीद है कि यह मदद कर सकता है।

import sqlite3 
con3 = sqlite3.connect("combine.db") 

con3.execute("ATTACH 'results_a.db' as dba") 

con3.execute("BEGIN") 
for row in con3.execute("SELECT * FROM dba.sqlite_master WHERE type='table'"): 
    combine = "INSERT INTO "+ row[1] + " SELECT * FROM dba." + row[1] 
    print(combine) 
    con3.execute(combine) 
con3.commit() 
con3.execute("detach database dba") 
संबंधित मुद्दे