使用ON DUPLICATE KEY和2个唯一列

时间:2015-03-24 16:24:30

标签: mysql sql

我有2列date(主要)和user_id(唯一)。我想检查该行是否存在,如果没有创建它,如果是,那么更新当天的行。

例如:如果用户每天多次更新数据库,我只希望每天创建1条记录,并且每次用户更新数据库时都要更新该记录。但是,如果同一个用户(同一个user_id)第二天更新了数据库,我想要创建一个新记录。

我使用以下代码:

INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

问题是它似乎没有检查dateuser_id,而只检查user_id。我怎样才能检查它们?感谢。

1 个答案:

答案 0 :(得分:0)

我认为你想在桌子上有一个唯一的索引。删除当前索引并定义:

create unique index idx_table_user_date on table(user, date)

这应该可以为您提供所需的行为 - 表中有多个用户和多个日期,但没有用户两次具有相同的日期(或者日期具有相同的用户两次)。