mysql:insert on duplicate key 版本导致问题
2012-06-08 11:51 MudooT 阅读(750) 评论(0) 编辑 收藏 举报insert on duplicate key的返回值在mysql的不同版本间的返回值是不同的。
证明如下:
数据库定义:
CREATE TABLE `test3` (
`a` int(11) NOT NULL auto_increment,
`b` int(11) NOT NULL,
`c` int(11) NOT NULL default '0',
PRIMARY KEY (`a`),
UNIQUE KEY `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
返回值如下:
|
5.0.27 |
5.5.20 |
第一次 |
1 |
1 |
第二次 |
2 |
2 |
第三次 |
2 |
1 |
在数据库驱动参数中增加useAffectedRows=true之后
返回值如下:
|
5.0.27 |
5.5.20 |
1 |
1 |
1 |
2 |
2 |
2 |
3 |
2 |
0 |
从使用上来看,如果使用到了insert on duplicate key的返回值,那么应该在驱动中增加useAffectedRows=true的参数,并且在判断是否是更新操作的时候避免使用==2的判断,而是使用<>1的判断。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架