Frage

Wenn ich eine große Anzahl von SQLite-Datenbanken habe, die alle dasselbe Schema haben, wie kann ich sie am besten zusammenführen, um eine Abfrage für alle Datenbanken durchzuführen?

Ich weiß, dass es möglich ist, es zu verwenden ANFÜGEN um dies zu tun, aber es hat eine Grenze 32 und 64 Datenbanken, je nach Speichersystem auf der Maschine.

War es hilfreich?

Lösung 2

Dies würde auf Nachfrage möglich mehrmals am Tag durchgeführt werden. Die Art, wie ich sehen würde, daran zu arbeiten ist wie in http : //sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html wo sich die Datenbanken in einem großen DB zusammengefasst werden, gelöscht die Abfrage durchgeführt und dann die große Datenbank.

Andere Tipps

Um von der Nabble Post zusammenfassen in DavidM Antwort:

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

Nach Bedarf wiederholen.

. Hinweis: hinzugefügt detach toMerge; per Mikes Kommentar

Wenn Sie nur diese Zusammenführung müssen einmal tun (um eine neue größere Datenbank erstellen), könnten Sie ein Skript / Programm erstellen, die Schleife wird alle Ihre SQLite-Datenbanken und fügen Sie anschließend die Daten in Ihre Haupt (groß) Datenbank.

Obwohl es sich um einen sehr alten Thread handelt, ist dies immer noch eine relevante Frage für die heutigen Programmieranforderungen.Ich veröffentliche dies hier, weil noch keine der Antworten prägnant, einfach und direkt auf den Punkt gebracht ist.Dies geschieht im Interesse der Google-Mitarbeiter, die auf dieser Seite landen.GUI wir gehen:

  1. Herunterladen SQLitestudio
  2. Fügen Sie alle Ihre Datenbankdateien hinzu, indem Sie die verwenden Ctrl + O Tastaturkürzel
  3. Doppelklicken Sie auf jede jetzt geladene Datenbankdatei, um sie alle zu öffnen/aktivieren/erweitern
  4. Lustiger Teil:Klicken Sie einfach mit der rechten Maustaste auf jede der Tabellen und klicken Sie auf Copy, und gehen Sie dann in der Liste der geladenen Datenbankdateien zur Zieldatenbank (oder erstellen Sie bei Bedarf eine neue), klicken Sie mit der rechten Maustaste auf die Zieldatenbank und klicken Sie auf Paste

Ich war beeindruckt, als mir klar wurde, dass solch eine gewaltige Aufgabe mit der alten Programmierfähigkeit gelöst werden kann:Kopieren und Einfügen :)

Ohne Straftat, ebenso wie ein Entwickler zu einem anderen, ich habe Angst, dass Ihre Idee schrecklich ineffizient zu sein scheint. Es scheint mir, dass anstelle von SQLite-Datenbanken zu vereinigen sollten Sie wahrscheinlich mehrere Tabellen in derselben Datenbank-Datei werden zu speichern.

Aber wenn ich mich irre ich denke, Sie die Datenbanken anfügen könnte und dann eine VIEW verwenden, um Ihre Anfragen zu vereinfachen. Oder eine speicherinterne Tabelle machen und kopieren Sie alle Daten (aber das ist noch schlimmer Leistung klug, vor allem, wenn Sie große Datenbanken)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top