mysql - 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
解决方案
嗯。. . 你怎么知道它update
是否工作?
您的唯一密钥已打开(emp_id, processeddate_d)
。这些是您在on duplicate key
子句中更新的仅有的两个字段:
on duplicate key update emp_id = 'A744', processeddate_d = '2019-12-27';
根据定义,这些都是无操作的,因为这些是重复的值。也许还有另一列您打算更新但没有。
推荐阅读
- javascript - Angular6地图不存在
- python - 导入数据集时如何随机复制一些文档?
- mysql - 想从mysql db中的电话号码获取国家区号
- python - Jupyter Notebook 和 JupyterLab 有什么区别?
- javascript - 如何在angularjs中获取url参数?
- javascript - 如何使用javascript查找数组中的所有值是否相等
- php - Cake PHP 2.X 设置邮件发送时的异常处理
- python - Python,pip:安装过程中避免使用 gcc
- ios - 当用户想要在从一个选项卡导航到另一个选项卡时不自动刷新 webViewController 时如何刷新它
- java - 应用程序跳帧