失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql duplicate id_mysql 使用ON DUPLICATE KEY UPDATE 时导致的自增主键id无限增大问题

mysql duplicate id_mysql 使用ON DUPLICATE KEY UPDATE 时导致的自增主键id无限增大问题

时间:2020-07-06 04:05:54

相关推荐

mysql duplicate id_mysql 使用ON DUPLICATE KEY UPDATE 时导致的自增主键id无限增大问题

mysql 版本:5.7

python版本:3.7

问题描述:mysql表A中数据有几十条,设置了一个自增 1 的id作为主键,在程序运行一段时间后发现表中最后一条数据的id已经是几百万了

表中所有数据如下:

可以看到最大的一条id已经是四百多万了,并且id是不连续的

操作表的sql语句为:

sql = "INSERT INTO table A(xx, xx, xx, xx) VALUES('{xx}', '{xx}', '{xx}', '{xx}') ON DUPLICATE KEY UPDATE xx = '{xx}', xx = '{xx}';".format(

xx=xx, xx=xx, xx=xx, xx=xx)

即在操作table A时,先判断UNI的值是否存在,不存在则insert,存在则update

排除了一系列代码逻辑和语法的问题后,发现MySQL在使用

ON DUPLICATE KEY UPDATE

时,不论是insert还是update都会导致自增id加1

当前id:

执行三条update语句后:

id变为:

下次如果向table A中insert时,id会从6535134开始

如果觉得《mysql duplicate id_mysql 使用ON DUPLICATE KEY UPDATE 时导致的自增主键id无限增大问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。