Un index unique dans MySQL n'a pas besoin d'être sur une seule colonne. Vous pouvez ajouter un index UNIQUE sur plusieurs colonnes simplement en spécifiant plus de colonnes dans votre ALTER TABLE..ADD UNIQUE
déclaration :
ALTER TABLE myTable ADD UNIQUE (
mykey,
myfoo
);
Vous pouvez maintenant utiliser un INSERT INTO...ON DUPLICATE KEY
normal déclaration.
DÉMO SQLFiddle (notez que les multiples valeurs répétées ne sont pas additionnées - toutes les autres le sont )
Remarque :
Si l'un ou l'autre est NULL, il ne sera pas être compté comme unique. mykey
étant 'bar' et myfoo
être NULL pourrait être ajouté à l'infini même s'ils ont les "mêmes" valeurs (NULL n'est pas vraiment une valeur).