ON DUPLICATE KEY UPDATE不生效,用UPDATE能正常更新

tinalucky 2020-03-12 08:51:08
INSERT INTO t_sp_team (TEAMID, TEAMNAME)VALUES( 'BZ', '备注99' ) ON DUPLICATE KEY UPDATE TEAMID='BZ';
1 queries executed, 1 success, 0 errors, 0 warnings

查询:INSERT INTO t_sp_team (TEAMID, TEAMNAME)VALUES( 'BZ', '员工报销99' ) ON DUPLICATE KEY UPDATE TEAMID='BZ'

共 0 行受到影响

但是用SELECT查询时能查得到数据:

SELECT * FROM t_sp_team WHERE teamid='BZ';
1 queries executed, 1 success, 0 errors, 0 warnings

查询:select * from t_sp_team where teamid='BZ' LIMIT 0, 1000

返回了 1 行

用ON DUPLICATE KEY UPDATE不生效,但直接用UPDATE语句是成功的,

UPDATE t_sp_team SET TEAMNAME='备注99' WHERE TEAMID='BZ';
1 queries executed, 1 success, 0 errors, 0 warnings

查询:update t_sp_team set TEAMNAME='备注99' where TEAMID='BZ'

共 1 行受到影响

请问这是什么原因或问题出在哪呢?
...全文
2233 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Abzz 2021-04-28
  • 打赏
  • 举报
回复
ON DUPLICATE KEY UPDATE TEAMID='BZ'后面的UPDATE TEAMID='BZ这句,就是说你的主键或者唯一索引重复了回去执行UPDATE TEAMID='BZ'的,所以你的记录不会变的啊。后面并不是指明根据哪些字段去判断是否唯一的
tinalucky 2020-03-12
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
ON DUPLICATE KEY UPDATE TEAMID='BZ' 你的TEAMID本来不就是等于 'BZ'吗?
对对,感谢感谢,眼花了。
ACMAIN_CHM 2020-03-12
  • 打赏
  • 举报
回复
ON DUPLICATE KEY UPDATE TEAMID='BZ' 你的TEAMID本来不就是等于 'BZ'吗?

56,673

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧