首页 > 解决方案 > MYSQL:重复密钥更新不起作用?

问题描述

这是我的 SQL 查询,下面的插入或更新返回 0 行受影响.. 我哪里出错了?

insert into biometric_data.daily_attendance (emp_id, in_punch, out_punch, processeddate_d, worktime)
    values ('A744', '27/12/2019 09:08:31', '27/12/2019 18:56:49', '2019-12-27', '8:48')
    on duplicate key update emp_id = 'A744', processeddate_d = '2019-12-27';

当我说,

select *
from attendance
where emp_id = 'A744' and processeddate_d = '2019-12-27';

返回 1 行。

A744 11:30 null 2019-12-27 8:48

但更新不起作用。

注意:浏览了很多帖子并尝试了所有内容,但我仍然找不到我犯错误的地方。

我的 PK 是id一个自动字段,并且index-> emp_id, processeddate_d unique-> emp_id, processeddate_d

标签: mysqlinsertsql-updateon-duplicate-key

解决方案


嗯。. . 你怎么知道它update是否工作?

您的唯一密钥已打开(emp_id, processeddate_d)。这些是您在on duplicate key子句中更新的仅有的两个字段:

on duplicate key update emp_id = 'A744', processeddate_d = '2019-12-27';

根据定义,这些都是无操作的,因为这些是重复的值。也许还有另一列您打算更新但没有。


推荐阅读