【问题标题】:get next auto increment value from an empty table从空表中获取下一个自动增量值
【发布时间】:2013-12-08 09:23:35
【问题描述】:

我有一个名为“消息”的表

我用大约 150 张桌子淹没了它,我不确定数量。 “id”字段是“primary”和“auto_increment”。

我错误地删除了表中的所有记录(注意:我没有截断表,因此不会重置计数)并且我丢失了记录数的计数。

是否有可能获得下一个“id”字段计数?在尝试使用 ajax 消息插入新消息时,这给我带来了问题。

【问题讨论】:

标签: mysql


【解决方案1】:

如果您没有截断表格,那么您可以使用

select auto_increment 
from information_schema.TABLES 
where TABLE_NAME ='messages' and TABLE_SCHEMA='database_name'

获取下一个自增值。

SQLFiddle demo

【讨论】:

  • 完美!这在 localhost 上是可行的,但是当我的应用程序在线托管时,我可以访问 Information_Schema 数据库吗?
  • 很难说。我想你会的。
  • 这又是个问题。我无法使用以下凭据“root”和“”连接到共享主机上的信息模式数据库。我想我需要将最后一个 id+1 复制到一个单独的表中才能访问下一个 auto_increment 值:(
【解决方案2】:

您可以尝试这样的查询来获取下一个 ID:

SELECT id+1 AS next_id FROM your_table_name_here ORDER BY id DESC LIMIT 1;

但是,如果 ID 具有自动增量功能,您可能不应该将其插入到表中。您可以将“NULL”作为 ID 值,它会自动填写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2012-07-13
    • 2013-06-29
    • 1970-01-01
    • 2016-01-08
    • 2013-09-01
    • 1970-01-01
    相关资源
    最近更新 更多