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

Vincolo unico, come evitare duplicati

Applica il vincolo univoco creando una chiave univoca:

ALTER TABLE the_table
ADD UNIQUE INDEX nid_language_unique (nid, language);

Questo vincolo impedisce a due righe di avere lo stesso nid e la stessa lingua.

Qualsiasi query che tenti di violare il vincolo avrà esito negativo.

Poiché vuoi ignorare gli errori (e comunque interrompere la query), puoi utilizzare INSERIRE IGNORARE e UPDATE IGNORE :

INSERT IGNORE INTO the_table (nid, language) VALUES (8, 'Chinese')
/* row not inserted and no error */