解决MySQL主键id从1开始自增 ,id不连续的问题
mysql inoDB引擎表的主键id自增值是保存在内存中的,所以mysql服务重启,自增值会丢失掉的,如果在重启服务之前对表有删除数据的操作,也会导致id 自增不连续的。
·
alter table tablename auto_increment = 1;
这个命令不会改动现有的表的内容和顺序,同时新插入行的id会先使用已删除的id,完美填补空缺id。
但这样按id排序就不一定是id大的写入时间晚了。
对于表格内某些行删除之后,id不连续这个问题完全无法容忍,一开始使用TRUNCATE TABLE tablename
来实现id从头自增,但是这个命令同时也会清空整个表 。
不连续
是因为mysql AUTO_INCREMENT有预分配,先申请,后使用,申请了没使用就跳了, 比如inser ignore 语句,因为有插入语句,所以一开始mysql就会给分配一个自增id,即便你没执行插入成功语句,下次再插入的时候就会调健
更多推荐
所有评论(0)