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

MySQL - Incrémenter la valeur de la colonne ou insérer des données si elles n'existent pas

Vous avez laissé la colonne de données hors de votre exemple d'insertion, mais vous l'avez mentionnée plusieurs fois, donc je suppose que cela existe. De plus, je suppose qu'il s'agit d'une date réelle (et non d'un horodatage ou d'une date/heure).

Si vous ajoutez un index unique sur (utilisateur, action, date), votre requête fonctionnera.

Voici le DDL :

alter table useractions
  add unique index unique_idx (user,action,date);

Et votre DML (en ajoutant la colonne de date) :

insert into useractions (user, action, times, date) values (2, 3, 1, current_date())
on duplicate key update times = times + 1;