Si hallas algún fallo con tu código o trabajo, recuerda probar siempre en un ambiente de testing antes añadir el código al trabajo final.
Solución:
Tendrá que adjuntar la base de datos X con la base de datos Y usando el comando ATTACH, luego ejecutar los comandos Insertar en apropiados para las tablas que desea transferir.
INSERT INTO X.TABLE SELECT * FROM Y.TABLE;
O, si las columnas no están emparejadas en orden:
INSERT INTO X.TABLE(fieldname1, fieldname2) SELECT fieldname1, fieldname2 FROM Y.TABLE;
La forma más fácil y correcta en una sola línea:
sqlite3 old.db ".dump mytable" | sqlite3 new.db
El primario key y los tipos de columnas se mantendrán.
Considere un ejemplo en el que tengo dos bases de datos, a saber, allmsa.db y atlanta.db. Digamos que la base de datos allmsa.db tiene tablas para todos los msas en EE. UU. y la base de datos atlanta.db está vacía.
Nuestro objetivo es copiar la tabla atlanta de allmsa.db a atlanta.db.
Pasos
- sqlite3 atlanta.db (para entrar en la base de datos atlanta)
- Adjunte allmsa.db. Esto se puede hacer usando el comando
ATTACH '/mnt/fastaccessDS/core/csv/allmsa.db' AS AM;
tenga en cuenta que le damos la ruta completa de la base de datos que se adjuntará. - verifique la lista de la base de datos usando
sqlite> .databases
puedes ver la salida como
seq name file --- --------------- ---------------------------------------------------------- 0 main /mnt/fastaccessDS/core/csv/atlanta.db 2 AM /mnt/fastaccessDS/core/csv/allmsa.db
- ahora llegas a tu objetivo real. Usa el comando
INSERT INTO atlanta SELECT * FROM AM.atlanta;
Esto debería servir a su propósito.
Recuerda algo, que puedes agregar una reseña .