Использование функции MAX() для получения последнего ID вставленной строки может привести к ошибкам. 15
Функция MAX() возвращает наибольший идентификатор на момент выполнения запроса. 1 Если значения ID увеличиваются последовательно, то самый большой идентификатор будет соответствовать последней записи. 2 Однако стоит учесть, что записи могут удаляться, или ID может быть назначен произвольно, не соответствуя хронологическому порядку добавления записей. 2
Кроме того, в многопоточных средах функция MAX() может вернуть не тот идентификатор, который ожидается, поскольку другой процесс, возможно, также вставил в таблицу строку после выполнения запроса. 1
Для получения последнего ID вставленной строки рекомендуется использовать функцию LASTINSERTID(). 2 Она эффективна только сразу после операции вставки, выполняемой в рамках текущей сессии. 2