Articolo scritto

  • il 21.01.2010
  • alle 04:08 PM
  • da Giuseppe

MySql – Eseguire una INSERT senza duplicati (ON DUPLICATE KEY UPDATE) 0

gen21

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

Scrivi un commento

* campi richiesti

Powered by WordPress and FREEmium Theme. developed by Dariusz Siedlecki and brought to you by FreebiesDock.com