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无限增大问题相关推荐
- MySQL使用on duplicate key update时导致主键不连续自增
在做数据统计的时候,我们经常会用到mysql的on duplicate key update语法来自动更新数据,比如 最近项目上需要实现这么一个功能:统计每个人每个软件的使用时长,客户端发过来消息,如 ...
- MYSQL自增主键ID重置
MYSQL在创建一个带有自增主键ID的表时,通常在删除数据时,导致自增主键不连续了.使用下面的SQL脚本可以重置主键. -- 1.重置已有数据主键 SET @rownum = 0; UPDATE ta ...
- MySQL获取自增主键Id
mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle通过获取序列的方式得到主键,mysql本身有一个列可以做自增长字段,mysql在插入一条数 ...
- MySQL为什么推荐自增主键ID为主键及MySQL的调优
页的概念 在计算机里,无论是内存还是磁盘,操作系统都是按页的大小进行读取的(页大小通常为 4 kb),磁盘每次读取都会预读,会提前将连续的数据读入内存中,这样就避免了多次 IO,这就是计算机中有名的局 ...
- 七种MYSQL插入数据后返回自增主键ID的方法
我们都知道,mysql中的insert插入之后会有返回值,返回的是影响的行数,也就是说,成功插入一条数据之后返回的是1,失败则返回0.那么,很多时候我们都想要得到最后插入的id值,下面七种方法均可,结 ...
- mysql添加数据的同时返回自增主键id
方法一(实测可用): <insert id="add" useGeneratedKeys="true" keyProperty="id" ...
- mysql自增主键到头了怎么办_自增主键用完了怎么办
在面试中,大家应该经历过如下场景 面试官:"用过mysql吧,你们是用自增主键还是UUID?" 你:"用的是自增主键" 面试官:"为什么是自增主键?& ...
- MySQL自增主键auto_increment原理 与 自增主键出现间隙不连续现象的定位
一.背景: 1.1.业务描述与SQL: 为了保存机器上报信息(业务需求是每个机器只需保存最新的一条记录),原 SQL 语句如下(其中,machineId 的为唯一索引,t_report_pad 的 i ...
- mysql 主键 自增_MySQL自增主键详解
一.自增值保存在哪儿? 不同的引擎对于自增值的保存策略不同 1.MyISAM引擎的自增值保存在数据文件中 2.InnoDB引擎的自增值,在MySQL5.7及之前的版本,自增值保存在内存里,并没有持久化 ...
最新文章
- C#中读取数据库中Image数据
- SAP C4C一个典型的客户Organization和employee的同步需求
- 前端学习(3303):函数组件组件子组件useRef聚焦
- [乱弹琴]关于2的讨论
- DOM节点的获取及创建
- 滴滴回应高额抽成:确实存在;抖音火山版被判赔腾讯 800 万元;华为鸿蒙系统有望下月规模化推送|极客头条...
- swift中的只读属性实现,很简单
- Ubuntu18.04安装openjdk-7-jdk
- 微信小程序引入iconfont图标
- Extjs EditorGridPanel
- windows系统ping端口及利用telnet命令Ping 端口
- MATLAB LibSVM安装——以MATLAB R2018B为例
- PaddleOCR 识别器数据增强
- python中元组拆包_Python 元组拆包示例(Tuple Unpacking)
- 用Python从零复现A星寻路算法 | 手撕代码#1
- 怎么把matlab代码输出到word,MATLAB图形输出到word中
- STM32配置单片机系统时钟(转)
- 前端刷新token,判断token是否过期,若没有过期则刷新token,过期则退出登录
- 围场一中2021高考成绩查询,2017围场一中录取分数线及2017高考成绩喜报
- 通过SparkFun制作自己的Fritzing零件