我有 2 列日期
(主要)和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。我怎样才能让它检查两者?谢谢。
最佳答案
我认为您想要表上有一个唯一索引。删除当前索引并定义:
create unique index idx_table_user_date on table(user, date)
这应该为您提供所需的行为 - 表中存在多个用户和多个日期,但没有用户两次具有相同的日期(或者日期具有相同的用户两次)。
关于mysql - 使用 ON DUPLICATE KEY 和 2 个唯一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29237878/