mysql:insert on duplicate key 版本导致问题_MySQL
程序员文章站
2024-01-04 19:02:41
...
bitsCN.com
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的判断。
bitsCN.com推荐阅读
-
mysql:insert on duplicate key 版本导致问题_MySQL
-
laravel - php向mysql执行insert时,提示“mysql duplicate key”,如何处理?
-
mysql error:#1062 Duplicate entry ‘***′ for key 1问题解决
-
mysql error:#1062 Duplicate entry ‘***′ for key 1问题解决方法
-
Mysql中Insert into xxx on duplicate key update问题
-
mysql error:#1062 Duplicate entry ‘***′ for key 1问题解决方法
-
mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )
-
mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )
-
mysql 中 replace into 与 insert into on duplicate key update 的用法和不同点实例分析
-
解决MySQL读写分离导致insert后select不到数据的问题