Si inserto varios registros con un bucle que ejecuta una sola inserción de registro, la última identificación de inserción devuelta es, como era de esperar, la última. Pero si hago una declaración múltiples registros de inserción:MySQL LAST_INSERT_ID() se utiliza con varios registros instrucción INSERT
INSERT INTO people (name,age)
VALUES ('William',25), ('Bart',15), ('Mary',12);
Digamos que los tres anteriores son los primeros registros insertados en la tabla. Después de la instrucción de inserción, esperaba que la última identificación de inserción devolviera 3, pero devolvió 1. La primera identificación de inserción para la declaración en cuestión.
Así que alguien puede confirmar si este es el comportamiento normal de LAST_INSERT_ID()
en el contexto de múltiples registros INSERT declaraciones. Entonces puedo basar mi código en eso.
¿Su tabla tiene un auto-incrementID? –
los dos segundos identificadores de inserción son fácilmente computables. solo agregue uno para cada registro después del primero. – dqhendricks
@dqhendricks ¿está seguro de que los identificadores estarán correctos? por lo que yo sé, las inserciones con innodb no bloquean un cierto conjunto de identificadores y otro proceso puede insertar una entrada intermedia, aunque no estoy seguro de esto para valores múltiples en 'INSERTAR ... VALORES ...' –