Repository 32bit  Forum
Repository 64bit  Wiki

[Risolto] SQLite+Java+database "Multipli"

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza dell'ultima regola porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[Risolto] SQLite+Java+database "Multipli"

Messaggioda lennynero » ven gen 08, 2010 20:09

Ciao ragazzi sto programmando un gestionale in Java che si appoggia ad un db sqlite, adesso avrei l'esigenza di fare un upgrade della struttura del db(causa cattiva analisi :(), ma non vorrei perdere i dati presenti nel vecchio db, sto cercando un modo per trasportarli dal vecchioDB al nuovoDB.
Presento la situazione(semplificata):
vecchioDB
A(a1,a2) la chiave è a1
B(b1,b2) la chiave è b1
La chiave esterna di A in B è b2(b2==a1)

nuovoDB
A(a1,a2) la chiave ora è a1,a2
B(b1,b2,b3) la chiave ora è b1,b3
La chiave esterna di A in B ora diventerebbe b2,b3(b2==a1, b3==a2)

In sostanza io vorrei fare questo: insert into nuovoDB.B(b1,b2,b3) Values(select b1,b2,a2 from vecchioDB.A, vecchioDB.B where b2==a1) è in qualche modo possibile in SQL o è necessario gestirlo in Java?

Grazie in anticipo.
Ultima modifica di lennynero il dom gen 10, 2010 15:07, modificato 2 volte in totale.
Avatar utente
lennynero
Linux 2.6
Linux 2.6
 
Messaggi: 541
Iscritto il: lun mag 03, 2004 0:00
Località: Salerno
Slackware: 14.0-x64
Kernel: 3.2.29
Desktop: xfce-4.10

Re: SQLite+Java+database "Multipli"

Messaggioda miklos » ven gen 08, 2010 22:48

La versione 3 di Sqlite permette questo tipo di insert(ma penso che anche sulla 2 sia supportato), dai un occhiata qui per un esempio:

http://www.mail-archive.com/sqlite-user ... 41785.html

nel tuo caso sarebbe una roba del genere:
Codice: Seleziona tutto
insert into nuovoDB.B(b1,b2,b3) select b1,b2,a2 from vecchioDB.A, vecchioDB.B where b2==a1;

comunque ti consiglio di leggere la documentazione ufficiale sulla sintassi delle insert:

http://www.sqlite.org/lang_insert.html

Ciau :D
ho visto cose che voi astemi non potete immaginare
miklos
Linux 2.6
Linux 2.6
 
Messaggi: 890
Iscritto il: lun lug 16, 2007 17:39
Località: Roma
Slackware: 14 64bit
Kernel: 3.8.6
Desktop: openbox 3.5.0

Re: SQLite+Java+database "Multipli"

Messaggioda lennynero » dom gen 10, 2010 15:06

Grazie miklos per avermi corretto la sintassi della insert, anche se in realtà il mio problema non era quello, cioè diciamo che la soluzione era nella domanda...:D. Mi spiego meglio: io supponevo che vecchioDB e nuovoDB fossero 2 file differenti, ma mi sono documentato un pò e ho scoperto che con il comando attach database posso attachare appunto altri databases a quello aperto..., e successivamente eseguire la query in esame(da te corretta), quindi problema risolto. Grazie ancora.
Avatar utente
lennynero
Linux 2.6
Linux 2.6
 
Messaggi: 541
Iscritto il: lun mag 03, 2004 0:00
Località: Salerno
Slackware: 14.0-x64
Kernel: 3.2.29
Desktop: xfce-4.10

Re: [Risolto] SQLite+Java+database "Multipli"

Messaggioda miklos » dom gen 10, 2010 16:10

ahhh ok... non avevo capito bene allora... comunque contento di esserti stato utile :D
ho visto cose che voi astemi non potete immaginare
miklos
Linux 2.6
Linux 2.6
 
Messaggi: 890
Iscritto il: lun lug 16, 2007 17:39
Località: Roma
Slackware: 14 64bit
Kernel: 3.8.6
Desktop: openbox 3.5.0


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite