首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从php中删除mysql自动增量字段值?

问从php中删除mysql自动增量字段值?
EN

Stack Overflow用户
提问于 2013-08-23 08:01:16
回答 3查看 2.4K关注 0票数 0

当我从mysql中删除一些数据时,我有一个表单将数据插入mysql works fine.But,并再次将值插入数据库--自动增量值是从上一行值开始的。ForExample:

如果我在mydatabse中有1,2,3,4,5作为id,如果我从数据库中删除4和5个id,并开始从插入下一个数据。身份证从六点开始.但是我需要得到id为4 .can,任何一个预先给suggestions.Thanks。

EN

回答 3

Stack Overflow用户

发布于 2013-08-23 08:05:34

恐怕MySQL不允许您像这样“重置”AUTO_INCREMENT字段。如果需要这种行为,就必须停止使用AUTO_INCREMENT并手动生成ID。

票数 1
EN

Stack Overflow用户

发布于 2013-08-23 08:08:32

自动增量不能(也不能)保证序列不中断。

您可以自己将其实现为"SELECT MAX(ID) + 1 FROM MYTABLE;"

但要注意:你会受到轻微但明显的性能打击。

  1. 如果您同时运行更新,则会面临死锁风险。
  2. (同样,如果您同时运行更新),您将面临使用相同密钥的两个插入的风险。

还可以通过在单独的表中运行自己的计数器来实现这一点。您必须有程序逻辑才能在删除时正确地减少此值,而且,由于“计数器”将成为争用的对象,您将再次获得性能热和死锁风险。

票数 0
EN

Stack Overflow用户

发布于 2013-08-23 08:10:11

您不应该在生产环境中使用AUTO_INCREMENT值,让MySQL为您照顾它的价值。

如果您需要知道您有多少行可以使用

代码语言:javascript
复制
SELECT COUNT(id) FROM tbl;

无论如何,如果您真的想要更改它的值,语法是:

代码语言:javascript
复制
ALTER TABLE tbl AUTO_INCREMENT=101;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18397754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档