MySql – Eseguire una INSERT senza duplicati (ON DUPLICATE KEY UPDATE) 0
A partire dalla versione 4.1 di mysql, è disponibile una comodissima clausola che permette di fare una insert, e contestualmente fare un update nel caso si tenti di inserire un record già presente. E’ sufficiente avere un campo definito come primary o unique. L’insert farà un controllo su tale campo e se duplicato procederà con l’update di qualsivoglia altro campo.Questa la sintassi:
INSERT INTO esempio SET valore1=’1′, valore2=’2′ ON DUPLICATE KEY UPDATE duplicato = duplicato + 1
Il campo “duplicato” conterrà il numero di volte che è stato incontrato un doppione ed è stato eseguito l’update.
I vantaggi sono evidenti: si scrive meno codice evitando di fare delle query di select per cercare valori già presenti, e sicuramente di guadagna in termini di performances.





RSS dei commenti
Non ci sono ancora commenti per questo articolo