Estoy trabajando en una aplicación respaldada por una instancia de MySQL, y me he encontrado con un comportamiento extraño que involucra lo que parecen ser inserciones "fantasmas".
Dada una tabla con una clave de entero de incremento automático, realizo lo siguiente:
- INSERT ... // generates ID 1
- INSERT ... // generates ID 2
- INSERT ... // generates ID 3
- SELECT * // returns the set of elements 1 and 3
Parece que la segunda inserción genera una ID y vuelve al cliente antes de que finalice la inserción, por lo que puedo conocer la ID simultáneamente y no poder seleccionar los datos todavía. Esto es sorprendente: creo que la inserción no volvería hasta que se inserte la fila.
 ¿Hay alguna manera de decirle a MySQL que asigne un ID e inserte una fila en una operación atómica, de modo que, una vez que conozca el ID? 2, se garantiza que volverá de una consulta de selección? 
