Italian Copiare tabelle da un db a un altro

Fulvio75

Well-Known Member
Licensed User
Ciao a tutti conoscete una soluzione semplice per copiare una tabella da un database SQLite a un altro?
I database sono identici e anche i campi delle tabelle.
Grazie
 

Gianni M

Well-Known Member
Licensed User
Longtime User
da manuale dovrebbe essere qualcosa simile a questo:
B4X:
INSERT INTO NuovoDB.tabella_esistente SELECT * FROM VecchioDB.table_esistente
chiaramente resta da considerare eventuali relazioni, foreing_keys, indici, con altre tabelle
 

Fulvio75

Well-Known Member
Licensed User
Risolto
ExecNotQuery("ATTACH DATABASE 'percorso/database.db' AS pippo')

Poi
ExecNotQuery("INSERT INTO Pluto.tabella1 SELECT * FROM pippo.tabella1")
Ovvio che pluto.tabella1 deve essere uguale a Pippo.tabella1
 

Gianni M

Well-Known Member
Licensed User
Longtime User
ExecNotQuery("ATTACH DATABASE 'percorso/database.db' AS pippo')
quindi, questa istruzione, serve ad "attaccare" un altro DB; in questo caso database.db. Non sapevo di questo comando:
Gli esami non finiscono mai (Eduardo)
 

Fulvio75

Well-Known Member
Licensed User
quindi, questa istruzione, serve ad "attaccare" un altro DB; in questo caso database.db. Non sapevo di questo comando:
Gli esami non finiscono mai (Eduardo)
Esatto prima fai così:
B4X:
DBConnection.SQLConn.ExecNonQuery("ATTACH DATABASE '" & File.Combine(File.DirRootExternal,"Download/Update.db") & "' AS UpdateDB")

'elimino i dati dalla tabella del db dell'app
DBConnection.SQLConn.ExecNonQuery("DELETE FROM T1")
                   
DBConnection.SQLConn.ExecNonQuery("INSERT INTO T1 SELECT * FROM UpdateDB.T1")

DBConnection.SQLConn.ExecNonQuery("DETACH DATABASE 'UpdateDB'")

ricordati DETACH altrimenti quando richiami nuovamente il db originale inchiodi tutto
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…