How to get the value of the latest auto-incremented value on a mysql table with concurrent connections

When building a web application it can seem a bit tricky to get the value of the id (primary key) of the latest row inserted in a mysql table.

It is not that complicated.

The function LAST_INSERT_ID() can help you finding that. This function will return the latest auto-incremented value. No need to specify the table, it just takes the latest one.


The next question is: what happens when I have many concurrent sessions on the same server? Will I get the latest inserted id from another user?

How to find which SQL is executed by a process

If you are looking for the last SQL query ran by a specific process, try this: 

select substr(sa.sql_text,1,1000) txt
from v$process p, v$session s, v$sqlarea sa
where p.addr=s.paddr
and s.username is not null
and s.sql_address=sa.address(+)
and s.sql_hash_value=sa.hash_value(+)
and spid=&SPID;