我怎样才能合并很多SQLite数据库?
如果我有大量SQLite数据库,都具有相同的模式,那么将它们合并在一起以便对所有数据库执行查询的最佳方法是什么?
我知道有可能使用ATTACH来做到这一点,但它有32和64数据库的限制 ,取决于机器上的内存系统。
在DavidM的回答中,从Nabble的post总结:
attach 'c:\test\b.db3' as toMerge; BEGIN; insert into AuditRecords select * from toMerge.AuditRecords; COMMIT; detach toMerge;
根据需要重复。
注意:添加detach toMerge;
根据迈克的评论。
这可以按需要完成,可能每天进行数次。 我会看到它的工作方式是在http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html数据库被合并到一个大型的数据库,查询执行然后将大型数据库删除。;
您也可以使用差异/合并软件来完成这项工作。 您可以尝试SQLite Compare ,它支持比较和合并大型SQLite表等等。
祝你好运
Liron
如果你只需要做一次这个合并操作(创build一个新的更大的数据库),你可以创build一个脚本/程序来循环你所有的sqlite数据库,然后将数据插入到主(大)数据库中。
没有冒犯性,就像一个开发人员到另一个开发人员那样,恐怕你的想法似乎非常低效。 在我看来,而不是联合SQLite数据库,你可能应该存储在同一个数据库文件的几个表。
但是,如果我错了,我猜你可以附加数据库,然后使用视图来简化您的查询。 或者制作一个内存表并复制所有的数据(但是性能更差,尤其是如果你有大型的数据库)