相关疑难解决方法(0)

如何合并许多SQLite数据库?

如果我有大量的SQLite数据库,都具有相同的模式,那么将它们合并在一起以便对所有数据库执行查询的最佳方法是什么?

我知道可以使用ATTACH来执行此操作,但它具有32和64个数据库的限制,具体取决于计算机上的内存系统.

database sqlite

64
推荐指数
5
解决办法
7万
查看次数

将SQLite文件合并到一个db文件中,然后"开始/提交"问题

这篇文章引用了这个用于合并SQLite数据库的页面.

顺序如下.假设我要合并a.db和b.db. 在命令行中,我执行以下操作.

  • sqlite3 a.db
  • 将'b.db'附加到M;
  • 开始; < -
  • 插入基准select*from toM.benchmark;
  • 承诺; < -
  • 分离数据库toM;

它运作良好,但在引用的网站中,提问者询问加速,答案是使用'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)

python sqlite merge

5
推荐指数
1
解决办法
1万
查看次数

如何使用Perl dbd-sqlite将另一个sqlite db附加到$ dbh

如何在Perl中将几个sqlite数据库附加到单个$ dbh中?在命令行中我可以在交互式sqlite3 rpel中附加,在Perl中使用dbd-sqlite怎么样?

对不起,如果已经在这里,perlmonks或类似已经回答,但无法找到正确的答案.

sqlite perl

2
推荐指数
1
解决办法
816
查看次数

标签 统计

sqlite ×3

database ×1

merge ×1

perl ×1

python ×1