2012-02-19 8 views
9

私は3つのSQLite DBを持っています。それぞれはテーブル構造に関して7つのテーブルのセットと全く同じセットを持っています。 [3種類のマシンからのログダンプです。Fastest Wayは2つのSQLiteデータベースを結合します

私はそれらを非常に同じ7つのテーブルを持つ1つのSQLite DBに結合したいと思いますが、各テーブルには3つのすべてのDBの結合データが必要です。私は3つの質問を実行したいからです。 これを行うには、最善の方法は何ですか。

+1

http://stackoverflow.com/questions/80801/how-can-i-merge-many-sqlite-databases、http://stackoverflow.com/questions/3689694/merge-sqlite-files- db-file-and-begin-commit-questionを参照してください。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

ええ、私はそれらを通過し、さらにいくつか。私は私のpythonコード内でこれを行うための堅牢な方法を探しているので、私はベストプラクティスを探していました。 – subiet

+0

@subiet、重複する行がある場合はどうなりますか? – Pacerier

答えて

5

各データベースをSQLダンプにエクスポートし、ダンプを新しい結合データベースにインポートします。 エクスポート形式SQL>を完了GUIのために

は、データベースデータベース>エクスポートされますSQLiteStudioで、例えばhttp://www.sqlite.org/cvstrac/wiki?p=ManagementTools

を見てみましょう。

+0

ねえ、GUIはオプションではありませんが、これはプログラムを繰り返し実行する必要があります。私はSQLのダンプ方法を調べるでしょう、それは各テーブルのIDのプライマリキーの制約を処理するでしょう、私はそれについて少し疑問です。 – subiet

+1

なぜ主キーをエクスポートする必要がありますか?データをエクスポートしてレコードを挿入すると、キーが生成されます。 Pythonでそれをしたい場合は、http://mysql-python.sourceforge.net/MySQLdb.html#some-examplesとhttp://www.kitebird.com/articles/pydbapi.htmlを見てください。 – ccpizza

6

ここでは、2つのデータベースを同じ構造のすべてのテーブルとマージする方法の1つです。私はそれが助けることを望む。

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") 
関連する問題