在不执行INSERT INTO查询的情况下,是否有可能找出我的主键的下一个自动递增将是什么?一些行被删除,这意味着仅仅在PK上执行SELECT MAX查询并不容易。非常感谢。
在不执行INSERT INTO查询的情况下,是否有可能找出我的主键的下一个自动递增将是什么?一些行被删除,这意味着仅仅在PK上执行SELECT MAX查询并不容易。非常感谢。
SHOW TABLE STATUS
,返回下一个Auto_increment
字段,例如:SHOW TABLE STATUS WHERE name = your_table_name;
或者
SELECT Auto_increment
FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name = your_table_name
FROM
的第一个示例,则必须指定数据库名称,而不是表名称。您可以添加 WHERE name = your_table_name'
以仅获取该表,或者如果您已经使用了数据库,则删除 FROM database_name
并只使用 WHERE
,就像下面的答案一样。 - aron.duby执行以下代码可以获取该值:
SHOW TABLE STATUS WHERE Name = nameOfTableHere
然后从结果中检索'Auto_Increment'列
SELECT Auto_increment
FROM information_schema.tables
WHERE table_name= 'tableName'
AND table_schema = DATABASE();
这也是可能的:
(SELECT (SELECT your_primary_key FROM Your_Table ORDER BY your_primary_key DESC LIMIT 1)+1);