Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/10/2011, 12:58
Avatar de Ribon
Ribon
 
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Funcion del rollback

Voy a tratar de explicarte de la mejor manera.

La idea de Rollback es retornar la base de datos a un estado previo o mejor dicho "deshacer las instrucciones que se hicieron dentro de la transacción que fue afectada por el rollback".

Cuando tienes un campo auto incrementable el siguiente valor se obtiene antes de insertarlo, por ejemplo si el valor estaba en 8 este se suma a 9, se almacena el nuevo valor para auto increment y después se utiliza el valor en la inserción, no importando si este valor se va a utilizar en una transacción o en una inserción directa.

Luego la siguiente inserción va a utilizar el siguiente valor, (10) para intentar hacer la inserción.

bien, la misión de auto_increment es ser una secuencia, nada más, a él no le interese donde se vaya a utilizar su valor y se utilizó o no.

la razón por la que el rollback no "vuelve atras" el valor de auto_increment es porque fucionar de manera independiente, adem´pas si al momento de realizar la inserción otro cliente intenta hacer la misma inserción va a utilizar el siguiente valor (haciendolo en paralelo) si la idea es que auto_increment sea un buen indice primario.

históricamente vas a poder utilizar los valores de auto_increment faltantes para tener una estadística de cuantas veces falló la inserción :)