从网上查到几种方法

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.参考

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

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐