At 9:33 +0000 2/19/04, Mark Maunder wrote:
'connection ID' below should be 'last insert id'. Sorry, it's 2am here
and I'm fresh out of coffee. BTW the information you want is here:
http://www.mysql.com/doc/en/Information_functions.html#IDX1409

"The last ID that was generated is maintained in the server on a
per-connection basis. This means the value the function returns to a
given client is the most recent AUTO_INCREMENT value generated by that
client. The value cannot be affected by other clients, even if they
generate AUTO_INCREMENT values of their own. This behavior ensures that
you can retrieve your own ID without concern for the activity of other
clients, and without the need for locks or transactions."

That page pertains to LAST_INSERT_ID(), which is a server side function and is not the same as the mysql_insert_id() client-side function. Their behaviors are not exactly the same, though for purposes of the original question, they'll both do the job: Return the AUTO_INCREMENT value generated by the current connection, without being interfered with by activity on other connections that also generate AUTO_INCREMENT values.



On Thu, 2004-02-19 at 09:26, Mark Maunder wrote:
 The two simultaneous insert statements will be have separate connections
 to the database and last_insert_id() is connection specific. So if
 you're running apache, and you're worried about two different apache
 child processes getting the same connection ID, don't. Because those two
 children will have separate connections to the DB.

 If you're forking or threading and using the same connection, it becomes
 a bit more complex.

Mark.

On Thu, 2004-02-19 at 09:17, Binay wrote:
> Hi
>
> I have a php script which insert a row in one of my table. Now i want the auto_generated id produced by this insert query. I know i can use mysql_insert_id function to fetch that auto_generated id. But my question is say two or more person visiting the same page/script causes a insert operation in the table at the same time. so there are chances of getting wrong auto_generated ids for different visitors. why am i saying this can be clear from below example.
>
> > Say one insert operation is in the progress and by the time control switches/call to mysql_insert_id function another insert operation starts .. so ultimately mysql_insert_id will fetch 2nd insert operation id which should not be the case. How to resolve this case??


--
Paul DuBois, MySQL Documentation Team
Madison, Wisconsin, USA
MySQL AB, www.mysql.com

MySQL Users Conference: April 14-16, 2004
http://www.mysql.com/uc2004/

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to