it-swarm-eu.dev

Wie kann ich viele SQLite-Datenbanken zusammenführen?

Wenn ich über eine große Anzahl von SQLite-Datenbanken verfügt, die alle dasselbe Schema haben, wie können Sie sie zusammenführen, um eine Abfrage für alle Datenbanken durchzuführen? 

Ich weiß, dass es möglich ist, ATTACH zu verwenden, aber dies hat eine Begrenzung von 32 und 64 Datenbanken, abhängig vom Speichersystem der Maschine.

56
DavidM

Dies würde bei Bedarf mehrmals täglich erfolgen. Wie ich es sehen würde, ist in http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html , wobei die Datenbanken in eine große Datenbank eingebunden werden wurde die Abfrage ausgeführt und dann die große Datenbank gelöscht.

16
DavidM

Zusammenfassend aus dem Nabble-Beitrag in DavidMs Antwort:

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

Wiederholen Sie diesen Vorgang bei Bedarf.

Hinweis: detach toMerge; wurde gemäß dem Kommentar von Mike hinzugefügt.

59
dfrankow

Wenn Sie diese Zusammenführungsoperation nur einmal durchführen müssen (um eine neue, größere Datenbank zu erstellen), können Sie ein Skript/Programm erstellen, das alle Ihre sqlite-Datenbanken durchläuft, und die Daten dann in Ihre (große) Datenbank einfügen.

1
Espo

Obwohl dies ein sehr alter Thread ist, ist dies in den heutigen Programmieranforderungen immer noch eine relevante Frage. Ich poste dies hier, weil keine der Antworten bisher präzise, ​​einfach und direkt ist. Dies ist für Googler, die auf dieser Seite enden. GUI wir gehen:

  1. Herunterladen Sqlitestudio
  2. Fügen Sie alle Datenbankdateien mit der Ctrl + O-Tastenkombination hinzu
  3. Doppelklicken Sie auf jede jetzt geladene DB-Datei, um sie alle zu öffnen/aktivieren/erweitern
  4. Fun-Teil: Klicken Sie einfach mit der rechten Maustaste auf jede der Tabellen und klicken Sie auf Copy. Wechseln Sie dann zur Zieldatenbank in der Liste der geladenen Datenbankdateien (oder erstellen Sie bei Bedarf eine neue), klicken Sie mit der rechten Maustaste auf die Zieldatenbank auf Paste

Ich war fasziniert zu erkennen, dass eine solch einschüchternde Aufgabe mit der alten Programmierfertigkeit gelöst werden kann: Kopieren und Einfügen :)

0