Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - Incrementar o valor da coluna ou inserir dados se não existir


Você deixou a coluna de dados fora do seu exemplo de inserção, mas você a mencionou várias vezes, então vou assumir que existe. Além disso, estou assumindo que é uma data real (não um carimbo de data/hora ou data/hora).

Se você adicionar um índice exclusivo em (usuário, ação, data), sua consulta funcionará.

Aqui está o DDL:
alter table useractions
  add unique index unique_idx (user,action,date);

E seu DML (adicionando a coluna de data):
insert into useractions (user, action, times, date) values (2, 3, 1, current_date())
on duplicate key update times = times + 1;