Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL - ignora l'errore di inserimento:voce duplicata

Puoi utilizzare INSERT... IGNORA sintassi se non vuoi eseguire alcuna azione quando c'è un record duplicato.

Puoi utilizzare REPLACE INTO sintassi se vuoi sovrascrivere un vecchio record con uno nuovo con la stessa chiave.

Oppure puoi utilizzare INSERT... ON DUPLICATE AGGIORNAMENTO CHIAVE sintassi se vuoi eseguire un aggiornamento del record invece quando incontri un duplicato.

Modifica:ho pensato di aggiungere alcuni esempi.

Esempi

Supponi di avere una tabella denominata tbl con due colonne, id e value . C'è una voce, id=1 e valore=1. Se esegui le seguenti istruzioni:

REPLACE INTO tbl VALUES(1,50);

Hai ancora un record, con id=1 valore=50. Si noti che l'intero record è stato però prima CANCELLATO e poi reinserito. Quindi:

INSERT IGNORE INTO tbl VALUES (1,10);

L'operazione viene eseguita correttamente, ma non viene inserito nulla. Hai ancora id=1 e value=50. Infine:

INSERT INTO tbl VALUES (1,200) ON DUPLICATE KEY UPDATE value=200;

Ora hai un singolo record con id=1 e valore=200.