如何从表中获得增量值

时间:2011-04-09 00:07:13

标签: php mysql sql

我需要从表中获取下一个id(auto_increment)。

我可以使用SELECT * from table ORDER BY id DESC LIMIT 1;

例如我得到50.但是如果我们从表格中删除两个项目,我将得到48但是正确的一个

将是51.即使我们从表中删除某些内容,如何获得正确的值?

6 个答案:

答案 0 :(得分:2)

您只能使用SHOW TABLE STATUS LIKE 'tablename'来获取auto_increment值。一个更简单的解决方案可能是:SELECT MAX(id) + 1 FROM table,但如果最后一个条目被删除,这就是错误的。

答案 1 :(得分:1)

show table status like 'table_name'

下一个id值位于“Auto_increment”字段

答案 2 :(得分:1)

SHOW TABLE STATUS LIKE 'table'

您想要的值位于Auto_increment字段。

请注意并发性:当您使用此值时,某些其他客户端可能已插入表中,因此您的值已过期。通常最好尝试不需要这个

答案 3 :(得分:0)

SELECT LAST_INSERT_ID() + 1;

获取自动增量列+ 1

中插入内容的最后一个ID

答案 4 :(得分:0)

我看到下一个ID的两个解决方案:

1)选择具有最大功能的列的较大值。示例:从表中选择max(id); 2)使用SHOW STATUS LIKE命令获取正确的数组索引。看看:http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html

答案 5 :(得分:0)

在我看来,你在这里创造了竞争条件。

为什么不能插入要插入的行,然后使用LAST_INSERT_ID()来查找它的ID?