Php 自动递增5个数字关闭?
我正在为一个项目使用一个数据库,在这个项目中我插入了一些东西,并且我有一个自动增量。但是,自动递增ID随机开始计数错误Php 自动递增5个数字关闭?,php,database,Php,Database,我正在为一个项目使用一个数据库,在这个项目中我插入了一些东西,并且我有一个自动增量。但是,自动递增ID随机开始计数错误 例如,表中的最后一个ID为227。当我插入另一行时,它应该自动将其分配为228,但它会跳到232。如何解决此问题?自动递增并不意味着使用表中下一个最高的数字 自动递增数字不连续的原因有几个 自动增量步长不能为1 前面的行可能已被删除 插入表中的事务可能已回滚 记录可能已更新自动增量列 自动增量开始索引可能已被DDL修改更改 然而,可能还有其他一些情况会导致这种情况 要回答“我如
例如,表中的最后一个ID为227。当我插入另一行时,它应该自动将其分配为228,但它会跳到232。如何解决此问题?自动递增并不意味着使用表中下一个最高的数字 自动递增数字不连续的原因有几个
要回答“我如何解决这个问题?”,不用麻烦了,ID应该是唯一的,其他什么都没有,让ID连续通常没什么用处(除非你在分页时假设它们是连续的,这是一个错误的假设)。自动递增并不意味着使用表中下一个最高的数字 自动递增数字不连续的原因有几个
要回答“如何解决此问题?”,不用麻烦了,ID应该是唯一的,其他什么都没有,让ID连续通常没有多大用处(除非您在进行分页时假设它们是连续的,这是一个错误的假设)。DB服务器可以提前收集自动增量编号。DB有时会得到5(或10或100),并用下一个+5(或10或100)更新下一个要分配的数字的长期存储,而不是只得到要求的数字。下一次分配下一个时,它会将其存储在内存中,速度会快得多,特别是因为它不必存储下一个来分配给磁盘 时间表:
- 询问下一个号码
- 内存中没有一个,因此:
- 转到磁盘以获取下一个(称为a)
- 使用+100更新磁盘
- 给询问者打电话
- 将+1存储在内存中,作为下一个要发出的值
- 询问下一个号码
- 将其设为+1,并将+2存储在内存中
(Oracle对序列也这样做。我使用它已经有一段时间了,但是对于序列,您可以指定缓存大小。保证顺序分配的唯一方法是缓存大小为零,这会更慢。)数据库服务器可以提前收集自动增量编号。DB有时会得到5(或10或100),并用下一个+5(或10或100)更新下一个要分配的数字的长期存储,而不是只得到要求的数字。下一次分配下一个时,它会将其存储在内存中,速度会快得多,特别是因为它不必存储下一个来分配给磁盘 时间表:
- 询问下一个号码
- 内存中没有一个,因此:
- 转到磁盘以获取下一个(称为a)
- 使用+100更新磁盘
- 给询问者打电话
- 将+1存储在内存中,作为下一个要发出的值
- 询问下一个号码
- 将其设为+1,并将+2存储在内存中
(Oracle对序列也这样做。我使用它已经有一段时间了,但是对于序列,您可以指定缓存大小。保证顺序分配的唯一方法是缓存大小为零,这会更慢。)除非您删除了第228行到第231行(或尝试插入它们,但由于约束、触发器或其他回滚而失败)
ALTER TABLE TABLE\u name AUTO\u INCREMENT=1
在phpmyadmin上尝试此操作,继续您的表、选项卡操作,并查看AUTO\u INCREMENT value。此外,您确实需要指定您正在使用的数据库类型。MySQL、SQL Server、PostgreSQL?每个数据库都有不同的命令。除非您删除了第228行到第231行(或尝试插入它们,但由于约束、触发器或其他回滚而失败)ALTER TABLE TABLE\u name AUTO\u INCREMENT=1
在phpmyadmin上尝试此操作,继续您的表、选项卡操作,并查看AUTO\u INCREMENT value。此外,您确实需要指定正在使用的数据库类型。MySQL?SQL Server?PostgreSQL?每个数据库都有不同的命令。