Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL - Spaltenwert erhöhen oder Daten einfügen, falls nicht vorhanden

Sie haben die Datenspalte in Ihrem Einfügungsbeispiel weggelassen, aber Sie haben sie mehrmals erwähnt, also gehe ich davon aus, dass sie existiert. Außerdem gehe ich davon aus, dass es sich um ein tatsächliches Datum handelt (nicht um einen Zeitstempel oder eine Datumszeit).

Wenn Sie einen eindeutigen Index für (Benutzer, Aktion, Datum) hinzufügen, funktioniert Ihre Abfrage.

Hier ist die DDL:

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

Und Ihre DML (Hinzufügen der Datumsspalte):

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