Autoincrement MySQL mal funcionamiento

Tengo una duda si esto es normal o estoy haciendo algo mal.

Tengo un campo id con autoincrement. La inserción de datos es exitosa y el campo genera el id correctamente y consecutivo.

Pero cuando la inserción de los datos no es exitosa, ya sea por intentar insertar una clave primaria repetida o un valor único repetido, entre otros, el campo autoincrement se incrementa de forma oculta, porque cuando inserto otro registro exitosamente el id se autoincremente, pero ya no es consecutivo sino que se a aumentado uno más, como si el registro que falló anteriormente el valor del autoincrement hubiese funcionado normalmente, pero sin insertar el dato.

La validación de los datos ya lo tengo, pero me causa gran curiosidad esto, porque puede suceder otro error que no sea por validación y el registro no se haga y el autoincrement se aumente en 1 y el próximo registro ya no seria consecutivo al anterior.

1 respuesta

Respuesta
1

Es el resultado de un mecanismo de concurrencia, primero se incrementa y toma el valor para la operación actual, al inicio de la transacción, no al final, de paso se actualiza automáticamente el valor de incremento para la siguiente operación. Si la operación fallase el valor de incremento para el siguiente registro ya esta actualizado, por eso te pasa eso que comentas.

http://stackoverflow.com/questions/2787910/why-does-mysql-autoincrement-increase-on-failed-inserts

Y por lo que leí, es imposible detener este salto, por lo que trataré de hacer una validación real-time y otra después de enviarse el form.

Gracias nuevamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas