Condividi
Aggiungere un record con un certo valore solo se non esiste in tabella
Ho una tabella mysql nella quale è definita una chiave primaria su una colonna, e vorrei poter fare in modo d'inserire un record con un certo valore per questa colonna solo se il record con detto valore non sia già presente in tabella.
Sono a conoscenza del fatto che potrei eseguire direttamente la query INSERT
e far generare un errore nel caso in cui il record sia già presente, ma esiste un modo più corretto di farlo? Grazie per l'eventuale aiuto.
Risolta
3
MySql
02-04-2019
2 Risposte
1711 Visite
+2
Risposte ( 2 approvate )
Puoi usare lo statemet INSERT IGNORE, traducendo direttamente dalla documentazione mysql otterrai quello che desideri, esso infatti riporta:
Se invece vuoi aggiornare il record nel caso in cui questo sia già presente allora piuttosto che la
INSERT IGNORE
devi utilizzare laINSERT ... ON DUPLICATE KEY ...
Per inserire un record in una tabella mysql solo se questo non è presente sulla tua chiave primaria, puoi usare la
INSERT IGNORE
, in questo modo:se ad es. la tua chiave primaria è composta da campi 'col_one' e 'col_two' ed il record con i valori 13 e 'abcde' è già presente, in tal caso il motore del database mysql ignorerà la INSERT e darà 0 righe coinvolte come risultato della query.
Questo è ovviamente solo un esempio, funziona anche con una chiave primaria definita su una sola colonna, e presumo sia facile adattarlo al tuo caso.