Seu comentário de esclarecimento diz que você está interessado em garantir que LAST_INSERT_ID() não dê o resultado errado se ocorrer outro INSERT simultâneo. Tenha certeza de que é seguro usar LAST_INSERT_ID() independentemente de outras atividades simultâneas. LAST_INSERT_ID() retorna apenas o ID mais recente gerado durante a sessão atual.
Você pode tentar você mesmo:
- Abra duas janelas de shell, execute mysqlclient em cada uma e conecte-se ao banco de dados.
- Shell 1:INSERT em uma tabela com uma chave AUTO_INCREMENT.
- Shell 1:SELECT LAST_INSERT_ID(), veja o resultado.
- Shell 2:INSERT na mesma tabela.
- Shell 2:SELECT LAST_INSERT_ID(), veja o resultado diferente do shell 1.
- Shell 1:SELECT LAST_INSERT_ID() novamente, veja uma repetição do resultado anterior.
Se você pensar sobre isso, esta é a única maneira que faz sentido. Todos os bancos de dados que suportam mecanismos de chave de incremento automático devem agir dessa maneira. Se o resultado depender de uma condição de corrida com outros clientes possivelmente fazendo INSERT simultaneamente, não haverá uma maneira confiável de obter o último valor de ID inserido em sua sessão atual.