我想在mysql中获取最后一个插入的行ID,任何一个帮助我 表字段是
答案 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环境中你无法控制有多少用户同时使用你的应用程序,以及操作将以何种顺序执行,最重要的是您希望保持数据库的一致性。