2008-09-17 235 views
53

如果我有大量的SQLite數據庫,都具有相同的模式,那麼將它們合併在一起以便對所有數據庫執行查詢的最佳方式是什麼?如何合併很多SQLite數據庫?

我知道可以使用ATTACH來做到這一點,但它有32和64個數據庫的a limit,這取決於機器上的內存系統。

回答

2

如果你只需要做一次合併操作(創建一個新的更大的數據庫),你可以創建一個腳本/程序來循環所有的sqlite數據庫,然後將數據插入你的主(大)數據庫。

0

沒有冒犯性,就像一個開發人員到另一個開發人員那樣,我恐怕你的想法看起來非常低效。 在我看來,而不是聯合SQLite數據庫,你應該可以在同一個數據庫文件中存儲幾個表。

但是,如果我錯了,我猜你可以附加數據庫,然後使用VIEW來簡化您的查詢。或者製作一張內存表並複製所有數據(但性能更差,尤其是如果您有大型數據庫)

+0

當數據庫工程師使用不同的副本工作時,爲了以某種方式修改結構或內容,同時用戶修改較舊的實時版本,合併兩個數據庫非常有用。 – Beejor 2015-09-12 20:59:57

4

您也可以使用差異/合併軟件來完成這項工作。您可以嘗試SQLite Compare,它支持比較和合並大型SQLite表等等。

好運

Liron

+0

http://download.cnet.com/3001-10254_4-10964767.html?spi=5484e22b6319e24014aac6ce19f95e93 – JustCurious 2012-02-04 14:14:40

50

要從Nabble post在DavidM的回答總結:根據需要

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

重複。

注意:根據邁克的評論補充detach toMerge;

+5

並且在提交之後還`detach toMerge;`*。 – mike 2015-04-13 11:30:00