社区
Java
帖子详情
2020-12-02:mysql中,一张表里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql
福大大架构师每日一题
2020-12-02 07:11:03
2020-12-02:mysql中,一张表里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?#福大大架构师每日一题#
...全文
3336
12
打赏
收藏
2020-12-02:mysql中,一张表里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql
2020-12-02:mysql中,一张表里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?#福大大架构师每日一题#
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaoxiangqing
2020-12-03
打赏
举报
回复
这个还是18
神话jsh
2020-12-03
打赏
举报
回复
必须是18啊 我对天发誓
Amin已经存在了
2020-12-02
打赏
举报
回复
这个情况比较复杂的,首先维护自增主键id的值AUTO_INCREMENT是放在内存里的,这是一个大前提。所以,你采用删除表数据是没用的,AUTO_INCREMENT值没改变。但是如果你重启数据库AUTO_INCREMENT的值就会改变了,相当于重启后获得表最大的AUTO_INCREMENT(select max(id) maxId from table,之后AUTO_INCREMENT+1。(引擎是InnoDB) 当然也有例外,如果你的mysql低于8.0版本,数据库引擎是MyISAM,那无论你删除或者重启,AUTO_INCREMENT都不会改变,这应该算是个bug,8.0版本就放弃使用MyISAM引擎了。
jvliao
2020-12-02
打赏
举报
回复
使用MylSAM引擎,则记录是18
KeepSayingNo
2020-12-02
打赏
举报
回复
是18啊,这是增长ID的作用啊,不管你删不删
tianfang
2020-12-02
打赏
举报
回复
老版本是18 , 除非使用sql修改,新版本情况不清楚
剑来灬
2020-12-02
打赏
举报
回复
15 凑个字数
亦夜
2020-12-02
打赏
举报
回复
如果使用的是InnoDB引擎,且在8版本以前则记录的ID是15,因为InnoDB会把最大ID写入到内存中,如果是8.0及以后的版本则是将其写入到日志中的,所以记录是18。 如果使用的是MylSAM引擎,则记录是18,因为MylSAM会将最大ID记录到数据文件中。
源者鬼道
2020-12-02
打赏
举报
回复
ID 自增主键,18
一头小山猪
2020-12-02
打赏
举报
回复
18~是通过内置的序列控制的,在序列未满的情况下都是顺次往下~
关切得大神
2020-12-02
打赏
举报
回复
在新版Navicat里亲测,重新插入的id是18,而不是之前的15
执笔记忆的空白
2020-12-02
打赏
举报
回复
这个还是18
mysql
数据库
自增
id
的总结.docx
在
MySQL
数据库
中
,
自增
ID
(Auto Increment)是一种常见的特性,用于在插入新
记录
时自动为指定列(通常是
主键
)生成唯一的递增数值。在标题提到的文档
中
,主要讨论了如何使用
自增
ID
以及与之相关的
INSERT
和REPLACE语句...
2
02
0-
12
-
02
:
mysql
中
,
一张
表
里面
有
ID
自增
主键
,当
insert
了
17
条
记录
之后
,
删除
了第
15
,
16
,
17
条
记录
,再把
Mysql
重启,再
insert
一
条
记录
,这
条
记
2
02
0-
12
-
02
:
mysql
中
,
一张
表
里面
有
ID
自增
主键
,当
insert
了
17
条
记录
之后
,
删除
了第
15
,
16
,
17
条
记录
,再把
Mysql
重启,再
insert
一
条
记录
,这
条
记录
的
ID
是 18 还是
15
? 福哥答案2
02
0-
12
-04:答案来自此...
MySQL
面试:
mysql
中
,
一张
表
里面
有
ID
自增
主键
,当
insert
了
17
条
记录
之后
,
删除
了第
15
,
16
,
17
条
记录
,再把
Mysql
重启,再
insert
一
条
记录
,这
条
记录
的
mysql
中
,
一张
表
里面
有
ID
自增
主键
,当
insert
了
17
条
记录
之后
,
删除
了第
15
,
16
,
17
条
记录
,再把
Mysql
重启,再
insert
一
条
记录
,这
条
记录
的
ID
是 18 还是
15
?
MySQL
8.0以下版本:
表
类型为InnoDB引擎,...
一张
表
,
里面
有
ID
自增
主键
,当
insert
了
17
条
记录
之后
,
删除
了第
15
,
16
,
17
条
记录
,再把
Mysql
重启,再
insert
一
条
记录
,这
条
记录
的
ID
是 18 还是
15
一张
表
,
里面
有
ID
自增
主键
,当
insert
了
17
条
记录
之后
,
删除
了第
15
,
16
,
17
条
记录
,再把
Mysql
重启,再
insert
一
条
记录
,这
条
记录
的
ID
是 18 还是
15
? (1)如果
表
的类型是 MyISAM,那么是 18 因为 MyISAM
表
...
mysql
面试题:
一张
表
里面
有
ID
自增
主键
,当
insert
了
17
条
记录
之后
,
删除
了第
15
,
16
,
17
条
记录
,再把
mysql
重启,再
insert
一
条
记录
,这
条
记录
的
ID
是18还是
15
一般情况下,我们创建的
表
...因为InnoDB
表
只把
自增
主键
的最大
ID
记录
到内存
中
,所以重启数据库或者对
表
OPTIMIZE操作,都会使最大
ID
丢失。 但是,如果我们使用
表
的类型是MylSAM,那么这
条
记录
的
ID
就是18。因为MylSAM...
Java
51,412
社区成员
86,032
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章