查询 - 使用查询获取mysql中最后插入的行id

时间:2015-02-27 06:51:50

标签: mysql

我想在mysql中获取最后一个插入的行ID,任何一个帮助我 表字段是

enter image description here

2 个答案:

答案 0 :(得分:2)

如果您想在插入后立即获取ID,请使用LAST_INSERT_ID()

SELECT LAST_INSERT_ID();

这将返回最后插入元素的AUTO_INCREMENT值(在当前连接中)。

如果您想知道确定表中最后插入的值是哪一个,请使用其他答案中提供的任何查询。

答案 1 :(得分:1)

您可以使用LAST_INSERT_ID(),但您应该知道(您不仅应该拥有AUTO_INCREMENENT),而且它确实在连接级别运行。也就是说,它将返回当前连接的last_insert_id()而不是last_insert_id(),而是生成另一个连接 - 可能同时发生 - 。

示例(假设操作按以下顺序到达数据库):

-Connection A : user A -> insert order (id = 1000), lets say $20
-Connection B : user B -> insert order (id = 1001), lets say $50
.... multiple orders from other users are placed
-Connection B : you retrieve last_insert_id (value 1001) and you retrieve the order amount, and update the user B profile with the total revenue generated (+$50).
-Connection A : you retrieve last_insert_id (value 1000) and you retrieve the order amount, and update the user A profile with the total revenue generated (+$20).

您应该知道last-insert_id()在连接级别上运行,因此您希望保持连接打开,直到完成为止。你不应该在数据库上使用像max这样的东西,因为在web环境中你无法控制有多少用户同时使用你的应用程序,以及操作将以何种顺序执行,最重要的是您希望保持数据库的一致性。