最快的方式合并两个SQLITE数据库

sub*_*iet 12 sql sqlite

我有3个SQLite DB,每个都有与表结构完全相同的7个表组.[它们是来自3种不同机器的日志转储].

我想将它们组合成一个SQLite DB,具有相同的7个表,但每个表应该具有来自所有三个DB的组合数据.因为我想在其中的3个中运行查询.什么是最好,最快的方法.

小智 14

这是将两个数据库与具有相同结构的所有表合并的一种方法.我希望它可以提供帮助.

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")
Run Code Online (Sandbox Code Playgroud)


ccp*_*zza 5

导出每个数据库执行SQL转储,然后将转储导入新的组合数据库.

对于GUI,查看http://www.sqlite.org/cvstrac/wiki?p=ManagementTools

例如,使用SQLiteStudio,它将是Database > Export the database:Export format:SQL > Done.

  • 为什么需要导出主键?导出数据并插入记录,将为您生成密钥。如果你想用 Python 来做,请查看 http://mysql-python.sourceforge.net/MySQLdb.html#some-examples 和 http://www.kitebird.com/articles/pydbapi.html (2认同)