Articoli, news e pillole sul mondo LAMP e l'opensource. Pillole di C#
MySQL, eseguire una INSERT che esegua update in caso di valori duplicati
In mysql, ma più in generale con l’SQL è possibile far eseguire al database una INSERT che, nel caso vi sia un duplicato con i valori passati, provveda ad eseguire un’UPDATE sul database.
Ad esempio:
$sql = “INSERT INTO tbl SET
a = 2,
b = 2,
c = 10
ON DUPLICATE KEY UPDATE b = b + “.$b;
In questo caso se una chiave primaria o più genericamente un indica UNIQUE dovesse verificare la presenza di un valore duplicato verrà eseguito un UPDATE che aggiorna il campo ‘b’ sommandogli il valore di $b.
Ciao. Maxgrante
info[AT]massimo-caselli[DOT]com
| Stampa l'articolo | Questo articolo è stato pubblicato da maxgrante il 3 December 2007 alle 11:29, ed è archiviato come MySQL, DB Server, Opensource World, PHP il turbo nel web. Puoi seguire i commenti a questo post attraverso RSS 2.0. Puoi pubblicare un commento o segnalare un trackback dal tuo sito. |
circa 2 anni fa
Scusa ma la sintassi dell’ INSERT non dovrebbe essere questa?
INSERT INTO tbl (a, b, c) VALUES (2, 2, 10)
circa 2 anni fa
Ciao,
non necessariamente… io ad esempio uso il SET.
Quello che conta è il fatto che in caso di fail di una chiave primaria o unique il DB esegue un’update.
Ciao. Max
circa 2 anni fa
Ma è fantastico! Non avevo ancora incontrato qst possibilità dopo anni di programmazione, mi hai risparmiato qualche if e qualche query di controllo!
circa 2 anni fa
Sono contento che ti possa essere d’aiuto l’articolo…
circa 2 anni fa
Ciao Max,
grazie x la dritta…c’avevo provato anche io, ma sfortunatamente non avevo strutturato per bene la query e quindi non funzionava..mentre invece con i SET nell’insert….
circa 2 anni fa