Mysql
 sql >> Base de données >  >> RDS >> Mysql

Contrainte unique, comment éviter les doublons

Appliquez la contrainte unique en créant une clé unique :

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

Cette contrainte interdit deux lignes ayant le même nid et la même langue.

Toute requête tentant de violer la contrainte échouera.

Comme vous voulez ignorer les erreurs (et toujours abandonner la requête), vous pouvez utiliser INSÉRER IGNORER et METTRE À JOUR IGNORER :

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