0

私はPythonでsqlite3を使用していますが、複数のデータベースファイルがあり、それらを1つの大きなファイルに結合したいと考えています。各データベースは特定のトピックに関連付けられていますが、それらはすべて同じ構造を共有しています。個別にクエリを実行します。移動しやすいように、1つのファイルにまとめたいだけです。

私が考えることができる1つの汚い方法は次のようになります:

create_string = 'CREATE TABLE %s_table1 (id INTEGER PRIMARY KEY, doca INTEGER, docb INTEGER)' %topic1 
cur.execute(create_string)

このように、各テーブルの前にトピック名を付け、クエリを実行するときに、適切なトピック名でクエリ文字列を作成する必要があります。しかし、これを解決するためのより良い方法があるはずです。明らかな何かが欠けていますか?

SQLiteで複数のデータベースファイルをマージする方法は?

どうすれば多くのSQLiteデータベースをマージできますか?

私はすでにこれらを見て、私の問題は彼らの問題よりも解決しやすいようですが、それでもより良い解決策を見つけることができません。

助けてくれてありがとう。

4

2 に答える 2

1

テーブル全体を移動したい場合 (それらをマージするのではなく、別のファイルからテーブルを取り込む場合など)、次のように unix で行うことができます。

 sqlite3 'from_this_db.db' '.dump' | sqlite3 -batch 'to_this_db.db'
于 2013-09-29T00:02:27.203 に答える
0

あなたの解決策は大丈夫だと思います。「ソース」カーソルを「宛先」カーソルexecutemanyメソッドへの入力として指定できることに注意してください。何かのようなもの:

src.execute('SELECT * FROM ...')
dest.executemany('INSERT INTO ...', src)
于 2012-09-07T03:33:02.523 に答える