mysql数据库id主键自增加删除后不连续如何解决

 更新时间:2024年03月15日 11:11:21   作者:yangliweigauguagua  
这篇文章主要介绍了mysql数据库id主键自增加删除后不连续的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

mysql数据库id主键自增加删除后不连续

在主键id删除某一条后,再次添加,删除的id不会使用,这是为了主键的唯一性,但是在程序中可能会出现问题,导致前后端不统一。

解决问题的思路

修改开始自增加的id,从而让自增加开始于你设置的值

用到的方法

alter table category auto_increment = 100

100为举例值,实际值看你自己

举例:

tp5

//先用max方法获取当前最大的id,然后加1,保存为变量
$max_id = DB::name('category') ->max('category_id');
//id+1
$max_id++;
//重置自动增加为当前最大值加1
DB::execute("alter table category auto_increment=".$max_id);

vite动态导入页面动态import组件

问题

之前数据库数据量太大,导致后期数据库使用时id数目太大,因此需要重新修改表的id大小

解决方法

第一种:

本人使用heidisql 可直接通过操作页面修改下一个自增id的值,如下图修改保存即可

第二种:

通过命令行处理  :alter table 表名 AUTO_INCREMENT=11;  一行命令直接搞定。

但要注意如果使用了mybatis的主键自增策略,就要做相应设置了,设成与数据库相对应的自增策略

重点!!! 重点!!!!   

其中修改的原则为:如果id值大于当前表的最大id,则设置无法生效。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持程序员之家。

相关文章

最新评论


http://www.vxiaotou.com