如何准确获取mysql中最后插入的记录的id?

时间:2012-02-02 12:05:57

标签: php mysql

我正在构建一个Web应用程序,可以由多个用户同时使用。他们可以同时添加数据。

我有一张名为doctor_main的表格如下

Screenshot of DB http://img687.imageshack.us/img687/7033/testxqz.png

一旦添加了关于医生的记录,我想要返回插入记录的id(这是一个自动增量字段)。

我知道我可以使用像LAST_INSERT_ID()和mysql_insert_id这样的方法。但我不知道它是如何表现的。

我需要该特定用户插入的记录的确切ID。

有时,如果两个用户试图插入记录,则返回的id不应该被交换。

要实现这一点,我应该使用什么样的mysql函数?

6 个答案:

答案 0 :(得分:8)

手册中有一整页专门讨论这个主题:

以下是该页面的引用,可以帮助回答您的问题:

  

对于LAST_INSERT_ID(),最近生成的ID在每个连接的基础上维护在服务器中。它不会被其他客户改变。

答案 1 :(得分:3)

mysql_insert_id()完全返回最后插入记录的id,所以如果你只是echo mysql_insert_id(),你将得到最后一个插入行的id。

答案 2 :(得分:2)

根据docsmysql_insert_id将返回您之前插入的确切ID。

答案 3 :(得分:2)

LAST_INSERT_ID()mysql_insert_id工作正常。每个客户端将收到客户端执行的最后一个语句的最后一个插入ID

答案 4 :(得分:2)

LAST_INSERT_ID()按连接运行;多个用户将使用多个连接,因此用户之间永远不会交换ID。

答案 5 :(得分:-1)

如果您对last_insert_id的机制持怀疑态度,那么您可以手动分配id而不是MySQL的auto_increment功能。