我在python中使用sqlite3,我有多个数据库文件,我现在要将它们组合成一个大文件。每个数据库都与特定主题相关联,但它们都共享相同的结构。我将分别查询它们 - 我只想将它们组合成一个文件,以便更容易移动它们。
我能想到的一种肮脏方式是这样的:
create_string = 'CREATE TABLE %s_table1 (id INTEGER PRIMARY KEY, doca INTEGER, docb INTEGER)' %topic1
cur.execute(create_string)
这样,我将以每个表为前缀的主题名称,当我进行查询时,我将不得不构造一个具有相应主题名称的查询字符串。但应该有更好的方法来解决这个问题。我错过了一些明显的东西吗?
How to Merge Multiple Database files in SQLite?
How can I merge many SQLite databases?
我已经看过这些了,似乎我的问题比他们的问题更容易解决,但我仍然找不到更好的解决方案。
提前感谢您的帮助。
答案 0 :(得分:1)
如果你想移动整个表(例如,不合并它们但是从不同的文件中引入表),你可以在unix中这样做:
sqlite3 'from_this_db.db' '.dump' | sqlite3 -batch 'to_this_db.db'
答案 1 :(得分:0)
我认为你的解决方案还可以。请注意,您可以将“source”光标作为“destination”光标 executemany 方法的输入。类似的东西:
src.execute('SELECT * FROM ...')
dest.executemany('INSERT INTO ...', src)