0

I have a form from which i am inserting data into mysql works fine.But when i delete some data from mysql, and inserted values into database again the autoincrement value is starting from the previous row value. ForExample:

If i have 1,2,3,4,5 as id's in mydatabse and if i delete 4 and 5 id's from database and started inserting next data from PHP. then the id's are coming from 6.... But i need to get id as 4 .can any one give suggestions.Thanks in advance.

4

3 回答 3

1

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

于 2013-08-23T08:05:34.350 回答
0

您不应该AUTO_INCREMENT在生产环境中玩弄价值,让 MySQL 为您处理它的价值。

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

SELECT COUNT(id) FROM tbl;

无论如何,如果你真的想改变它的值,语法是:

ALTER TABLE tbl AUTO_INCREMENT=101;
于 2013-08-23T08:10:11.177 回答
0

自动增量不(也不能)保证一个完整的序列。

你可以自己实现这个"SELECT MAX(ID) + 1 FROM MYTABLE;"

但请注意:您将受到轻微但明显的性能影响。

  1. 如果您同时运行更新,则可能会出现死锁
  2. (同样,如果您同时运行更新)您将面临具有相同键的两个插入的风险。

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

于 2013-08-23T08:08:32.213 回答