0

我在 python 中使用 sqlite3,我有多个数据库文件,现在我想将它们组合成一个大文件。每个数据库都与一个特定的主题相关联,但它们都具有相同的结构。我将分别查询它们——我只想将它们组合到一个文件中,以便更容易移动它们。

我能想到的一种肮脏方式是这样的:

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 回答