|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[MySql]unica insert per diverse tabelle
Ciao a tutti
![]() Volevo chiedervi come fare per eseguire tramite un'unica insert, l'inserimento di dati in più tabelle. Mi spiego meglio: Ho queste tabelle: Cantieri (ID_Cantiere, descrizione) CantieriSedi(ID_Sede, ID_Cantiere, sede) Servizi(ID_Servizio, descrizione) //i dati in questa tabella sono già presenti CantieriServizi(ID_Lavoro, ID_Cantiere, ID_Servizio, descrizione) ora, dovrei fare in modo che attraverso un'unica insert, l'inserimento avvenga così: in Cantieri la descrizione (nessun problema); in CantieriSedi, prenda l'ID_Cantiere da Cantieri; in CantieriServizi, prenda l'ID_Cantiere da Cantieri, ID_Servizio e descrizione da Servizi. Mi date una mano? Grazie. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Perché un'unica insert ? Per problemi di consistenza ?
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Ciao cionci
![]() Alla tua domanda non so rispondere in quanto non so in termini di informatica cosa significhi "consistenza" ![]() Lo chiedevo perchè a "naso" non mi sembrava corretto eseguire più insert. La mole dei dati con la quale ho a che fare è comunque piccolina. Mi diresti a grandi linee cosa si intende per "consistenza" ? Grazie mille ![]() RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Può voler dire tante cose, ma in questo caso: se fa insert in istruzioni diverse ti si potrebbero inserire altre insert (o update) nel mezzo e magari le tue insert non avrebbero più il significato voluto.
Che tipo di tabelle usi ? InnoDB o MyISAM ? |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Per queste tabelle, dato che non ci devo effettuare transazioni, e la mole dei dati è piccola, per questioni di velocità sto usando MyIsam.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Allora usa Lock e Unlock
![]() LOCK TABLES pippo WRITE, pluto WRITE; fai le tue insert UNLOCK TABLES; http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
E' perfetto
![]() Un'altra piccola cosa se posso dato che ora riesco a fare queste insert. Succede che ho queste tabelle: Cantiere (ID_Cantiere, descrizione) CantiereSede(ID_Sede, ID_Cantiere) Ora, dovrei fare in modo di verificare quando i due ID_Cantiere sono uguali avendo però come condizione di confronto solo la descrizione del cantiere. E' possibile? Grazie. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
uhm... sto sognando?
è come se mi bastasse: Codice:
SELECT cantieri.ID_Cantiere, cantieriSedi.ID_Cantiere FROM cantieri, cantieriSedi WHERE descrizione = 'MIO_CANTIERE';
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:09.