В MySQL LAST_INSERT_ID()
зависит от соединения, в противном случае это может привести ко многим нежелательным последствиям.Если другой процесс добавляет запись, чем при использовании другого соединения, то возвращаемое значение для LAST_INSERT_ID()
не изменяется для вашего текущего соединения.
Я не думаю, что оно обрабатывается по-другому в других RDBMS, и выне упоминайте, какую систему баз данных вы используете.
В словах MySQL Doc:
Сгенерированный идентификатор сохраняется на сервере для каждого соединения.Это означает, что значение, возвращаемое функцией данному клиенту, является первым значением AUTO_INCREMENT, сгенерированным для самого последнего оператора, влияющего на столбец AUTO_INCREMENT этим клиентом.На это значение не могут повлиять другие клиенты, даже если они генерируют собственные значения AUTO_INCREMENT.Такое поведение гарантирует, что каждый клиент может получить свой собственный идентификатор, не заботясь об активности других клиентов и не нуждаясь в блокировках или транзакциях.
Для получения дополнительной информации см. Документы MySQL .