sql >> Base de Datos >  >> RDS >> Mysql

MySQL:incrementa el valor de la columna o inserta datos si no existe

Dejó la columna de datos fuera de su ejemplo de inserción, pero la mencionó varias veces, así que asumiré que existe. Además, asumo que es una fecha real (no una marca de tiempo ni una fecha y hora).

Si agrega un índice único en (usuario, acción, fecha), su consulta funcionará.

Aquí está el DDL:

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

Y su DML (agregando la columna de fecha):

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