sql >> Base de Datos >  >> RDS >> Mysql

AUTO_INCREMENT y LAST_INSERT_ID

SELECT max(employeeid) FROM Employee;

La consulta anterior devuelve el valor de employeeid del último registro insertado en la tabla de empleados porque employeeid es una columna de incremento automático. Esto parece estar bien, pero supongamos dos hilos están ejecutando la operación de inserción simultáneamente, ¡existe la posibilidad de que obtenga una identificación incorrecta del último registro insertado!

No se preocupe, MySQL proporciona una función que devuelve el valor de la columna de incremento automático del último registro insertado.

SELECT LAST_INSERT_ID();

LAST_INSERT_ID() siempre es específico de la conexión , esto significa que incluso si la operación de inserción se lleva a cabo simultáneamente desde diferentes conexiones, siempre devuelve el valor de la operación específica de la conexión actual.

Entonces, primero debe insertar un registro en la tabla de empleados, ejecutar la consulta anterior para obtener el valor de identificación y usar esto para insertarlo en la segunda tabla.