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

MySQL - Incrementa il valore della colonna o inserisci i dati se non esiste

Hai lasciato la colonna dei dati fuori dal tuo esempio di inserimento, ma l'hai menzionata più volte, quindi presumo che esista. Inoltre, presumo che sia una data effettiva (non un timestamp o datetime).

Se aggiungi un indice univoco su (utente, azione, data), la tua query funzionerà.

Ecco il DDL:

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

E il tuo DML (aggiungendo la colonna della data):

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