我有一个表单,我将数据插入mysql工作正常。但是当我从mysql中删除一些数据,并再次将值插入数据库时,自动增量值从前一行值开始。 ForExample:
如果我在mydatabse中有1,2,3,4,5作为id,如果我从数据库中删除了4和5个id 并开始从 PHP 插入下一个数据。然后id来自6 ....但我需要得到id为4。任何人都可以给出建议。谢谢你。
答案 0 :(得分:1)
我担心MySQL不允许你“重置”这样的AUTO_INCREMENT
字段。如果您需要该行为,则必须停止使用AUTO_INCREMENT
并手动生成ID。
答案 1 :(得分:0)
自动增量不会(也不能)保证不间断的序列。
您可以自己实施"SELECT MAX(ID) + 1 FROM MYTABLE;"
但要注意:你会受到轻微但明显的表现。
您也可以通过在单独的表中运行自己的计数器来实现此目的。你必须有程序逻辑才能在删除时正确地减少这一点,而且,由于“计数器”将成为争用的对象,你将再次获得性能热和死锁的风险。
答案 2 :(得分:0)
您不应该在生产环境中使用AUTO_INCREMENT
值,让MySQL为您处理它的价值。
如果你需要知道你有多少行可以使用
SELECT COUNT(id) FROM tbl;
无论如何,如果您真的想要更改其值,则语法为:
ALTER TABLE tbl AUTO_INCREMENT=101;