2012-02-16 12 views
5

En una aplicación de alto tráfico, ¿es posible que mysqli_insert_id() devuelva la identificación incorrecta o que se confunda la identificación entre dos consultas INSERT realizadas casi simultáneamente?¿Es posible que mysqli_insert_id devuelva una identificación incorrecta en aplicaciones de alto tráfico?

+1

buena pregunta 1 – tomexsans

+0

Para su información, esto se llama una [* Condición de la carrera *] (http://en.wikipedia.org/wiki/Race_condition) –

Respuesta

8

número mysqli_insert_id devuelve al máximo el valor AUTO_INCREMENT de la consulta más reciente INSERT en la conexión actual. Nunca se confundirá con otra conexión, por ejemplo.

1

No. ¿Cómo puedo estar tan seguro? Porque se habría informado y se había corregido un largo hace tiempo.

1

Citando una respuesta anterior a esta exactamente la misma pregunta: ¿

Mira http://dev.mysql.com/doc/refman/5.6/en/getting-unique-id.html para más información, se dice lo siguiente:

"Para LAST_INSERT_ID(), el ID generado más recientemente se mantiene en el servidor por conexión. No lo cambia otro cliente . Ni siquiera se cambia si actualiza otra columna AUTO_INCREMENT con un valor no mágico (es decir, un valor que no es NULO y no 0) .Usando LAST_INSERT_ID() y AUTO_INCREM Las columnas ENT simultáneamente de múltiples clientes son perfectamente válidas. Cada cliente recibirá del último registro insertado Identificación de la última declaración de que el cliente ejecutado."

por lo que debe estar bien haciendo lo que quiere y no debe obtener resultados extraños.

Cuestiones relacionadas