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?