tutorial studio manager instalar español database sqlite

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



sqlite windows (5)

Esto se haría a pedido, posiblemente 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 borrada.

Si tengo una gran cantidad de bases de datos SQLite, todas con el mismo esquema, ¿cuál es la mejor manera de unirlas 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.


Para resumir desde 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: agregado detach toMerge; según el comentario de Mike.


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


Sin ofender, como un desarrollador a otro, me temo que su idea parece terriblemente ineficiente. Me parece que, en lugar de unir bases de datos SQLite, probablemente deba almacenar varias tablas dentro del mismo archivo de Base de Datos.

Sin embargo, si estoy equivocado, supongo que podría ADJUNTAR las bases de datos y luego usar una VISTA para simplificar sus consultas. O haga una tabla en la memoria y copie todos los datos (pero eso es incluso peor en cuanto al rendimiento, especialmente si tiene bases de datos grandes)


También puede usar un software diff / merge para hacer el trabajo. Puede probar SQLite Compare , admite comparar y combinar grandes tablas de SQLite, entre otras cosas.

Buena suerte

Liron