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

mettre à jour si deux champs existent, insérer sinon (MySQL)

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).