数据库自增id,删除个别数据后出现不连号的情况解决方法整理

从网上查到几种方法

1. 不需要数据库中的数据的情况

truncate table table_name  

这是因为进行全表操作时,MySQL实际是做了这样的优化操作:先把数据表里的所有数据和索引删除,然

后重建数据表。如果想删除所有的数据行又想保留序列编号信息,可这样用一个带where的delete命令以

2.需要保存数据的情况

  • 方法1:删除主键,重新创建主键
--mysql举例
alter table table_name  drop 'id';
alter table table_name  add column id int auto_increment primary key;

执行完上面这一条,字段增加,但值为空

alter table table_name auto_increment=100;

执行这一条,它会自动为已存在的数据的自增字段赋初值,从1开始,同时将后续新增的数据从100开始

  • 方法2:修改已有的数据初始值(没有达到我想要的结果)
alter table table_name auto_increment=n

命令来重设自增的起始值

但是这个我试了,以为能 1,2,4,5,7,8
这种情况下设置
alter table table_name auto_increment=1
就再增加数据就会填补3,6
但是实际上并不是这样,

alter table table_name auto_increment=n;

注意n只能大于已有的auto_increment的整数值,小于的值无效.

3.感悟

查这个问题时更多得到的信息是,数据库不推荐重用已使用过的编号(索引)
要重新排列现有的序列编号,最简单的方法是先删除该列,再重建该,MySQL会重新生连续的编号序列。

4.参考

参考学习来源 本文中之是选出了某个相关问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路途遥远gg

帮到你了就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值