如果我有大量的SQLite数据库,都具有相同的模式,那么将它们合并在一起以便对所有数据库执行查询的最佳方法是什么?
顺序如下.假设我要合并a.db和b.db. 在命令行中,我执行以下操作.
它运作良好,但在引用的网站中,提问者询问加速,答案是使用'begin'和'commit'命令.
然后,我想出了以下python代码来完成同样的事情.我用SQLiteDB抽象SQLite函数调用,其中一个方法是runCommand().即使我删除了self.connector.commit(),我也得到了同样的错误.
# run command
def runCommand(self, command):
self.cursor.execute(command)
self.connector.commit() # same error even though I delete this line
db = SQLiteDB('a.db')
cmd = "attach \"%s\" as toMerge" % "b.db"
print cmd
db.runCommand(cmd)
cmd = "begin"
db.runCommand(cmd)
cmd = "insert into benchmark select * from toMerge.benchmark"
db.runCommand(cmd)
cmd = "commit"
db.runCommand(cmd)
cmd = "detach database toMerge"
db.runCommand(cmd)
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误.
OperationalError: cannot commit - …Run Code Online (Sandbox Code Playgroud) 如何在Perl中将几个sqlite数据库附加到单个$ dbh中?在命令行中我可以在交互式sqlite3 rpel中附加,在Perl中使用dbd-sqlite怎么样?
对不起,如果已经在这里,perlmonks或类似已经回答,但无法找到正确的答案.