我有2列date
(主要)和user_id
(唯一)。我想检查该行是否存在,如果没有创建它,如果是,那么更新当天的行。
例如:如果用户每天多次更新数据库,我只希望每天创建1条记录,并且每次用户更新数据库时都要更新该记录。但是,如果同一个用户(同一个user_id)第二天更新了数据库,我想要创建一个新记录。
我使用以下代码:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
问题是它似乎没有检查date
和user_id
,而只检查user_id。我怎样才能检查它们?感谢。
答案 0 :(得分:0)
我认为你想在桌子上有一个唯一的索引。删除当前索引并定义:
create unique index idx_table_user_date on table(user, date)
这应该可以为您提供所需的行为 - 表中有多个用户和多个日期,但没有用户两次具有相同的日期(或者日期具有相同的用户两次)。