[Risolto] SQLite+Java+database "Multipli"

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
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 della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 618
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: 14.2-x64
Kernel: 4.4.14
Desktop: xfce-4.12
Località: Salerno
Contatta:

[Risolto] SQLite+Java+database "Multipli"

Messaggio da lennynero »

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 10 gen 2010, 14:07, modificato 2 volte in totale.

ilmich
Master
Master
Messaggi: 1563
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 14.2 64bit
Kernel: 4.19.46
Desktop: dwm
Località: Roma

Re: SQLite+Java+database "Multipli"

Messaggio da ilmich »

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
https://github.com/ilmich

Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 618
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: 14.2-x64
Kernel: 4.4.14
Desktop: xfce-4.12
Località: Salerno
Contatta:

Re: SQLite+Java+database "Multipli"

Messaggio da lennynero »

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.

ilmich
Master
Master
Messaggi: 1563
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 14.2 64bit
Kernel: 4.19.46
Desktop: dwm
Località: Roma

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

Messaggio da ilmich »

ahhh ok... non avevo capito bene allora... comunque contento di esserti stato utile :D
ho visto cose che voi astemi non potete immaginare
https://github.com/ilmich

Rispondi