前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL重新设置auto_increment值

MySQL重新设置auto_increment值

作者头像
编程随笔
发布2022-04-29 12:23:29
1.7K0
发布2022-04-29 12:23:29
举报
文章被收录于专栏:后端开发随笔后端开发随笔

需求描述

通常,我们都会在数据库表中设置一个自增字段作为主键,该字段的值会随着添加新记录而自增。 同时也必须注意,这个自增字段的值只会一直增加,即使把记录删除了,该自增字段的值也不会变小。 因此,就会产生一个现象:假如某些记录被物理删除了,那么表中记录的这个自增字段值就不是连续的。 即:通过某个自增值去查询的时候表里并不存在该记录。

处于某种目的,如果希望该自增字段值一定是连续的,有2种解决办法: 1.表记录不允许物理删除 2.物理删除表记录后重新设置auto_increment

在此,专门针对重新设置auto_increment值进行说明。

更新auto_increment值

在修改表的auto_increment值之前需要先查看当前值是多少:

代码语言:javascript
复制
mysql> select auto_increment from information_schema.tables where table_schema='数据库名' and table_name='表名';
+----------------+
| auto_increment |
+----------------+
|          60002 |
+----------------+
1 row in set (0.04 sec)

如上,table_schema参数指定数据库名,table_name参数指定表名,当前的auto_increment值为60002。 如果此时我们将表中的最后10000条数据物理删除掉,那么再插入新的记录时,auto_increment值将会继续增加:60003,60004 ... 。 显然,此时1-50002有记录,50003-60002是没有记录的。 为了使得新添加的记录自增ID再次继续从50003开始计数,执行如下语句:

代码语言:javascript
复制
mysql> alter table 表名 AUTO_INCREMENT=50002;

最后总结

直接修改auto_increment值的使用场景比较少见,通常不建议这么做。一则通过这种方式来保持自增ID的连续性增加了运维的负担,二则通常不允许直接物理删除表记录。

【参考】 https://blog.csdn.net/hehaoyang666/article/details/41281113 mysql自增ID起始值修改方法 https://blog.csdn.net/fdipzone/article/details/50421831 MySql查看与修改auto_increment方法

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求描述
  • 更新auto_increment值
  • 最后总结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档