当前位置:  开发笔记 > 编程语言 > 正文

如何确保auto_increment数字没有差距?

如何解决《如何确保auto_increment数字没有差距?》经验,为你挑选了1个好方法。

我有一个auto_incrementing的问题案例,这是我的表我首先它是如此顺利增加id*

id*      name
1        name1
2        name2
3        name3
4        name4
5        name5
6        name6

但是当我删除一条记录并插入一条新记录时,id从7开始.

id*      name
1        name1
2        name2
3        name3
5        name5
6        name6
7        name7

这就是我想要做的:

id*      name
1        name1
2        name2
3        name3
4        name7
5        name5
6        name6

我想要一个解决方案,其中填写每个数字,所以如果我删除一行,下一个autoinc号码将是我删除的数字而不是更高的下一个数字.



1> N.B...:

首先,它是完全罚款有这些差距.这里是没有问题的.只是你的强迫症迫使你认为这些数字必须遵循一种模式 - 他们不这样做.

auto_increment 它不是PHP的功能,它是MySQL的功能

auto_increment确保每一行都有唯一的编号.它不处理序号

auto_increment在并发环境中安全地工作 - 这意味着有很多用户连接到MySQL并执行操作,并且所有用户都必须能够处理数据库而不能获得用于标识行的相同ID.这是通过一个相当复杂的过程来完成的,这也是auto_increment产量差距的原因之一

auto_increment用于InnoDB磁盘上记录的物理组织 - 它使用的特征auto_increment是产生一个比以前更大的数字(它的功能,比以前更大,而不是顺序).使用它,构造一个b树,并在硬盘上依次写入记录.篡改auto_increment使InnoDB树重新平衡.它意味着它会通过记录并重新创建索引,如果你搞砸了 - 这是你不想要的东西.自从

当你想到它时,你甚至得到了连续数字?没有什么,除了你的大脑可能会受到伤害,因为有一些想象的秩序.

对于序列号,请使用触发器创建它们.auto_increment只有一份工作和一份工作 - 产生独特的数字.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有