4

我在 MSSQL 中使用此代码:

SELECT IDENT_CURRENT('customers');

当我在 MySQL 中尝试它时它不起作用。我在网上寻找答案,但找不到任何对我有用的东西。上述 TSQL 的 MySQL 等价物是什么?

4

5 回答 5

6

我想你正在寻找这个:

SELECT LAST_INSERT_ID('customers');

LAST_INSERT_ID()并非在所有情况下都是如此,所以更好地使用:

SELECT MAX('id') FROM customers;
于 2013-01-14T00:16:58.423 回答
3

在 MySQL 中,您可以使用LAST_INSERT_ID(expr)

于 2013-01-14T00:16:31.777 回答
1

我不知道你是否仍然需要它,但它可能会对某人有所帮助。:)

我遇到了同样的问题,需要从我的表中获取下一个 id(auto_increment 编号),而无需添加新行且不使用 MAX() 或 LAST_INSERT_ID(),因为它只会返回最后一个可见记录而不是真实记录下一个自动增量。

我找到的解决方案是从 table_schema 中获取 auto_increment,如下所示:

SELECT  AUTO_INCREMENT
FROM    information_schema.TABLES
WHERE   (TABLE_NAME = 'your_table')

希望它可以帮助某人,就像它帮助了我一样。*对不起英语不好,我来自巴西。

于 2013-07-23T16:38:13.887 回答
1
SELECT LAST_INSERT_ID();

To learn more about this function: http://dev.mysql.com/doc/refman/5.6/en/information-functions.html#function_last-insert-id

In order for this to work as intended, the 'ID' column must be set to "UNIQUE".

于 2015-07-11T21:46:18.803 回答
-1

如果您使用某种身份(递增 ID)列,则以下内容应该有效;

Select top 1 ID from TBLNAME
order by ID DESC
于 2013-01-14T03:23:58.207 回答