关注我们,设为星标,每天7:30不见不散,架构路上与您共享 回复"架构师"获取资源
「innodb 引擎(低版本):Innodb 表中把自增列作为主键 ID 时,自增列是通过 auto-increment 计数器实现的,计数器的最大值是记录到内存中的,重启数据库后,会导致 auto-increment 计数器重置,从而会导致主键 ID 重置。」 「MyISam 引擎:MyISAM 表会把自增列(auto-increment 计数器)最大值是记录到数据文件里,重启 MySQL 自增列(计数器)最大值不会丢失,从而使用自增列作为主键 ID 时也不会丢失。」
innodb 主键重置问题
//1.创建user表:自增列作为主键ID
CREATE TABLE `user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT '',
`age` int(4) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
//2.插入5条数据
INSERT INTO `user`(`name`, age) VALUES('刘备1', 21);
INSERT INTO `user`(`name`, age) VALUES('刘备2', 22);
INSERT INTO `user`(`name`, age) VALUES('刘备3', 23);
INSERT INTO `user`(`name`, age) VALUES('刘备4', 24);
INSERT INTO `user`(`name`, age) VALUES('刘备5', 25);
场景一
场景二
MySQL 8.0 auto-increment 计数器逻辑
总结
update table set id = 15 where id = 9
后,如果这时再继续插入数据,到了自增 ID=15 的时候是会报错。到此文章就结束了。如果今天的文章对你在进阶架构师的路上有新的启发和进步,欢迎转发给更多人。欢迎加入架构师社区技术交流群,众多大咖带你进阶架构师,在后台回复“加群”即可入群。
第9期活动已结束,中奖小伙伴联系小编。
这些年小编给你分享过的干货
3.带工作流的SpringBoot后台管理项目快速开发解决方案
4.最好的OA系统,拿来即用,非常方便
5.SpringBoot+Vue完整的外卖系统,手机端和后台管理,附源码!
转发在看就是最大的支持❤️