it-swarm-es.com

¿Cómo puedo combinar muchas bases de datos SQLite?

Si tengo una gran cantidad de bases de datos SQLite, todas con el mismo esquema, ¿cuál es la mejor manera de combinarlas para realizar una consulta en todas las bases de datos?

Sé que es posible usar ATTACH para hacer esto, pero tiene un límite de 32 y 64 bases de datos dependiendo del sistema de memoria en la máquina.

61
DavidM

Esto se haría bajo demanda, posible varias veces al día. La forma en que lo vería funcionar es como en http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html donde las bases de datos se fusionan en una gran base de datos , la consulta realizada y luego la gran base de datos eliminada.

18
DavidM

Para resumir de la publicación de Nabble en la respuesta de DavidM:

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

Repita según sea necesario.

Nota: se agregó detach toMerge; según el comentario de mike.

62
dfrankow

Si solo necesita realizar esta operación de combinación una vez (para crear una nueva base de datos más grande), puede crear un script/programa que conecte todas sus bases de datos sqlite y luego inserte los datos en su base de datos principal (grande).

1
Espo

Aunque es un tema muy antiguo, esta sigue siendo una pregunta relevante en las necesidades de programación de hoy. Estoy publicando esto aquí porque ninguna de las respuestas proporcionadas es concisa, fácil y directa. Esto es por el bien de los Googlers que terminan en esta página. GUI vamos:

  1. Descargar Sqlitestudio
  2. Agregue todos sus archivos de base de datos utilizando el método abreviado de teclado Ctrl + O
  3. Haga doble clic en cada archivo db ahora cargado para abrir/activar/expandirlos todos
  4. Parte divertida: simplemente haga clic derecho en cada una de las tablas y haga clic en Copy, y luego vaya a la base de datos de destino en la lista de los archivos de base de datos cargados (o cree uno nuevo si es necesario) y haga clic derecho en la base de datos de destino y haga clic en Paste

Me sorprendió darme cuenta de que una tarea tan desalentadora se puede resolver utilizando la antigua habilidad de programación llamada: copiar y pegar :)

1