MySQL自增主键值回溯问题
平时我们使用MySQL时,通常每一个表都会有一个自增主键ID,每新增一条数据,ID值就会自增1。但在8.0之前版本的MySQL中,这个自增值会存在一个回溯的问题。
例如,在一个新表中插入三条主键为1、2、3的数据行,这时候用SHOW CREATE TABLE
命令查看该表的AUTO_INCREMENT
的值是4,这是没问题的。
然后把ID=3的数据行删掉,再次查询AUTO_INCREMENT
的值,依然是4,这也是没问题的。
但如果重启一下MySQL,这个值就会变回3,而不是4,发生了回溯。
这是因为AUTO_INCREMENT
的值只存储于内存中,不会持久化到磁盘,每次启动数据库时,MySQL会通过计算max(auto_increment字段) + 1
,重新作为该表下一次的主键ID的自增值。这个问题直至MySQL 8.0才修复。
MySQL自增主键值回溯问题相关推荐
- 重置mysql自增主键值的方法
重置mysql自增主键的值方法 show create table [表名] 查看当前主键索引值alter table [表名] auto_increment = [你希望的值] 设置你希望的索引值 ...
- hive导数据到mysql 自增主键出错_老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”...
前言"又要开始新项目了,一顿操作猛如虎,梳理流程加画图.这不,开始对流程及表结构了.我:吧啦吧啦吧啦 --老大:这个建表为啥还设置个自增 id ?直接用流水号(用户号/产品号)当主键不就行 ...
- 通过源码分析Mybatis是如何返回数据库生成的自增主键值?
在Mybatis中,执行insert操作时,如果我们希望返回数据库生成的自增主键值,那么就需要使用到KeyGenerator对象. 需要注意的是,KeyGenerator的作用,是返回数据库生成的自增 ...
- datatable如何生成级联数据_通过源码分析Mybatis是如何返回数据库生成的自增主键值?...
在Mybatis中,执行insert操作时,如果我们希望返回数据库生成的自增主键值,那么就需要使用到KeyGenerator对象. 需要注意的是,KeyGenerator的作用,是返回数据库生成的自增 ...
- mysql自增主键返回---创建成功后返回用户的ID
mysql自增主键返回 查询id的sql SELECT LAST_INSERT_ID() 通过修改User.xml映射文件,可以将mysql自增主键返回: 如下添加selectKey 标签 <! ...
- mybatis获取mysql自增主键_Mybatis获取数据库自增主键
一般我们都为将表中主键列设置为自增,当我们执行插入语句时,比如这样 //测试添加 Employee employee = new Employee(null, "jerry4",n ...
- 美团面试:MySQL 自增主键一定是连续的吗?
美团问数据库比较多,分享一位读者面试美团遇到的关于 MySQL 自增主键的问题. 下面是正文. 众所周知,自增主键可以让聚集索引尽量地保持递增顺序插入,避免了随机查询,从而提高了查询效率 但实际上,M ...
- mybatis mysql自增主键_mybatis 自增主键配置
mybatis 自增主键配置 mybatis自增主键配置(?) mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同.基本上经常会 遇到的就是 Oracle Seque ...
- MySQL自增主键一定是连续的吗
测试环境: MySQL版本:8.0 数据库表:T (主键id,唯一索引c,普通字段d) 如果你的业务设计依赖于自增主键的连续性,这个设计假设自增主键是连续的.但实际上,这样的假设是错的,因为自增主键不 ...
- mysql自增主键设置
mysql自增主键设置 在数据库应用中,经常希望在每次插入新纪录时,系统自动生成字段的主键值.可以通过为表主键添加AUTO_INCREMENT关键字来实现. 默认情况下,在MYSQL中AUTO_INC ...
最新文章
- PostgreSQL 10.1 手册_部分 III. 服务器管理_第 19 章 服务器配置_19.8. 错误报告和日志...
- 什么时候会引起索引失效
- android 自定义paint,Android中自定义常用的三个对象解析(Paint,Color,Canvas)
- 阿里云视频云编码优化的思考与发现
- postman和部署在 SAP 云平台上的SAP UI5应用发送同样的HTTP请求,为何前者成功,后者失败?
- [COGS58] 延绵的山峰
- 利用好手头的资源解决海量语料资源收集以及利用哈工大的LTP云平台解决依存句法和语义依存分析
- 深度学习中的损失函数总结以及Center Loss函数笔记
- 仿真器和模拟器的区别是什么?
- 文献检索的正确姿势——新生培训
- C ++ 数组 | 多维数组(MultiDimensional Arrays)_2
- 4.8_adapter_结构型模式:适配器模式
- C++---内联函数与宏
- Web常用字體-Font-Family
- 集成服务入门(实验7)数据流的目标
- 从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。...
- codewars题目
- 路由器和三层交换机的基本实验操作
- 分体式蓝牙耳机有哪些推荐?好用的分体式蓝牙耳机推荐
- 禁欲28天!一宅男居然肝出如此详细Web安全学习笔记,学妹看完直接抽搐了!(第二弹)
热门文章
- AIX系统中 .toc文件是做什么用的
- 申论高分作者心得分享——站在政府的角度写申论
- VTN系列多通道振弦模拟信号采集仪常规操作
- 如何在Mac电脑上调整日期和时间?如何高效管理时间?
- 平面设计之PS(前)
- 什么是等级保护, 等保2.0详解
- SDL —— SDL_mixer
- 数据分析宝典(上):四步轻松搞定指标
- Power Apps 中显示 SharePoint Online 数据
- Android 根据名字获取经纬度,Android 根据城市获取经纬度 适配Android 7.0 、Android 8.0...