|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Prov.Cagliari
Messaggi: 1590
|
[SQL] Update o Inserimento in sole 2 query
Salve ragazzi, vorrei risolvere una questione in un determinato modo. Mi spiego: ho una tabella nella quale devo aggiornare, se esiste, una determinata riga; se invece non esiste, la devo aggiungere.
prendiamo per esempio la seguente tabella, con una riga già presente Codice:
key value
riga1 1 10
query 1) UPDATE tabella SET value = 10 WHERE key = 1 poi utilizzo la funzione affected_rows per vedere se è stato modificato qualcosa. quindi, se è stato modificato qualcosa, ok; se invece non è stato modificato niente, devo fare un INSERT. a questo punto sorge un problema. quindi, un pò di pseudo codice: Codice:
eseguo query 1
if ( affected_rows )
ok
else
INSERT
A questo punto si entra nell'else dove viene fatto un inserimento, ma giustamente con errore perchè mi da un duplicato di chiave. Come risolvere in sole 2 query? è possibile? oppure dentro l'else devo fare una select per controllare che quella tupla non esista già prima di fare l'insert??? io vorrei evitare proprio questo.... oppure ancora, è possibile gestire l'errore che mi da php quando faccio l'insert con un valore di chiave duplicato??? Spero di essermi spiegato, grazie a tutti!!!! Ultima modifica di AMD_GO : 13-12-2010 alle 15:32. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Prov.Cagliari
Messaggi: 1590
|
nessuno nessuno che mi aiuta??
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
I vincoli di integrità
Chiave primaria, o chiave unica. Codice:
ON DUPLICATE KEY UPDATE |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2006
Città: Prov.Cagliari
Messaggi: 1590
|
Quote:
Tuttavia la clausola Codice:
ON DUPLICATE KEY UPDATE |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:24.




















