如何合并许多SQLite数据库?

database sqlite

57396 观看

5回复

16394 作者的声誉

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

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

作者: DavidM 的来源 发布者: 2008 年 9 月 17 日

回应 (5)


1

33853 作者的声誉

如果您只需要执行此合并操作一次(以创建新的更大的数据库),您可以创建一个脚本/程序,它将循环所有sqlite数据库,然后将数据插入到主(大)数据库中。

作者: Espo 发布者: 17.09.2008 07:31

15

16394 作者的声誉

决定

这可以按需完成,可能一天几次。我认为它的工作方式与http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html一样,数据库合并到一个大型数据库中,执行查询然后删除大型数据库。

作者: DavidM 发布者: 17.09.2008 08:03

-3

41332 作者的声誉

没有冒犯,就像一个开发者和另一个开发者一样,我担心你的想法看起来非常低效。在我看来,您可能应该在同一个数据库文件中存储多个表,而不是联合SQLite数据库。

但是,如果我错了,我猜你可以使用数据库,然后使用VIEW来简化查询。或者制作一个内存表并复制所有数据(但是性能更差,特别是如果你有大型数据库)

作者: Robert Gould 发布者: 17.09.2008 09:33

55

8432 作者的声誉

总结一下DavidM的答案中的Nabble帖子

attach 'c:\test\b.db3' as toMerge;           
BEGIN; 
insert into AuditRecords select * from toMerge.AuditRecords; 
COMMIT; 
detach toMerge;

根据需要重复。

注意:detach toMerge;根据迈克的评论添加。

作者: dfrankow 发布者: 18.06.2012 06:58

0

455 作者的声誉

虽然这是一个非常老的线程,但这仍然是当今编程需求中的一个相关问题。我在这里发布这个,因为提供的答案都不简洁,简单,直观。这是为了结束此页面的Google员工。我们去的GUI:

  1. 下载Sqlitestudio
  2. 使用Ctrl + O键盘快捷方式添加所有数据库文件
  3. 双击每个现在加载的db文件以打开/激活/展开它们
  4. 有趣的部分:只需右键单击每个表并单击Copy,然后转到已加载数据库文件列表中的目标数据库(或根据需要创建新数据库)并右键单击目标数据库并单击Paste

我很高兴地意识到,使用古老的编程技巧可以解决这样一项艰巨的任务:复制并粘贴:)

作者: Damilola Olowookere 发布者: 15.11.2018 06:19
32x32