Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Funcion del rollback

Estas en el tema de Funcion del rollback en el foro de Mysql en Foros del Web. hola amigos tengo una duda, ya que estoy utilizando transacciones (BEGIN,COMMIT Y ROLLBACK), tengo una tabla con una campo auto_incrementable, al realizar el rollback este ...
  #1 (permalink)  
Antiguo 25/10/2011, 09:49
Avatar de arturohrdez  
Fecha de Ingreso: abril-2011
Ubicación: Puebla
Mensajes: 43
Antigüedad: 13 años
Puntos: 3
Funcion del rollback

hola amigos tengo una duda, ya que estoy utilizando transacciones (BEGIN,COMMIT Y ROLLBACK), tengo una tabla con una campo auto_incrementable, al realizar el rollback este campo se incrementa es decir:

Si tengo en mi tabla el registro con el id 8, y aplico un rollback al intentar insertar un registro nuevo, el id se incrementa a 9 pero no aparecen los datos del registro que intente guardar.

Mi duda esta en que si al utilizar el rollback no afecta los campos autoincrementables??
ya que si inserto otro y la inserción fue exitosa el id que aparece es el 10 con los datos que guarde.
y si hago una consultaa aparecen los registros con el id8 y id10. y el id9 por que lo salta? no se supone que al aplicar el rollback toma el lugar del registro ke no se pudo insertar??
alguien me pudiera explcar eso? se lo agaradeceria de antemano muchas gracias..!
  #2 (permalink)  
Antiguo 25/10/2011, 10:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Funcion del rollback en php

¿Que RDBMS estas usando?
  #3 (permalink)  
Antiguo 25/10/2011, 10:15
Avatar de arturohrdez  
Fecha de Ingreso: abril-2011
Ubicación: Puebla
Mensajes: 43
Antigüedad: 13 años
Puntos: 3
Respuesta: Funcion del rollback en php

Cita:
Iniciado por GatorV Ver Mensaje
¿Que RDBMS estas usando?
Hola GatorV, estoy utilizando MYSQL con tablas de tipo innodb, espero me pueda hechar la mano te lo agradesco
  #4 (permalink)  
Antiguo 25/10/2011, 10:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Funcion del rollback

Muevo tu tema a MySQL, ya que no es tema de PHP.

Saludos.
  #5 (permalink)  
Antiguo 25/10/2011, 11:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Funcion del rollback

¿Tablas InnoDB o MyISAM?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 25/10/2011, 11:38
Avatar de arturohrdez  
Fecha de Ingreso: abril-2011
Ubicación: Puebla
Mensajes: 43
Antigüedad: 13 años
Puntos: 3
Respuesta: Funcion del rollback

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Tablas InnoDB o MyISAM?
hola amigo gnzsoloyo estoy utilizando tablas InnoDB, es normal que al aplicar el rollback salte los id? o que inserte datos pero no los muestre?
  #7 (permalink)  
Antiguo 27/10/2011, 12:58
Avatar de 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 :)
  #8 (permalink)  
Antiguo 28/11/2011, 11:42
Avatar de arturohrdez  
Fecha de Ingreso: abril-2011
Ubicación: Puebla
Mensajes: 43
Antigüedad: 13 años
Puntos: 3
Respuesta: Funcion del rollback

Muchas gracis por las respuestas, y por tomarse el tiempo para responden se les agradece de verdad

Etiquetas: funcion, php, registro, rollback, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:27.