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

duda sobre last_insert_id

Estas en el tema de duda sobre last_insert_id en el foro de Mysql en Foros del Web. Hola estoy haciendo una aplicacion con transacciones y trate de insertar ticekts, es para un sistema de gestion. El caso es que un ticket fallo ...
  #1 (permalink)  
Antiguo 04/05/2015, 11:07
Avatar de giuli956  
Fecha de Ingreso: noviembre-2012
Mensajes: 149
Antigüedad: 11 años, 5 meses
Puntos: 1
duda sobre last_insert_id

Hola estoy haciendo una aplicacion con transacciones y trate de insertar ticekts, es para un sistema de gestion.

El caso es que un ticket fallo y me quedaron 3 registros con sus ids: 1,2,4. el 4 funciono luego del 2 obviamente.
Y en la tabla ventas que relacion el id de ticket con los productos del detalle:

VENTAS(idticket, idproducto,cantidad,preciou)

me inserta en idticket el numero 3. Para llenar la tabla ventas el idticket no se pasa como parametro sino que se ejecuta un query en el servidor:

Código MySQL:
Ver original 

Entonces es correcto decir que al hacer rollback se elimina un id?

Porque la funcion no devuelve 4 en lugar de 3?
Saludos
  #2 (permalink)  
Antiguo 04/05/2015, 11:24
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: duda sobre last_insert_id

Cita:
Entonces es correcto decir que al hacer rollback se elimina un id?
No.
El valor del LAST_ISERT_ID() no se restaura, pero el comportamiento de visibilidad del valor generad puede cambiar si el INSERT es una query simple, o si se usa en un STORED PROCEDURE, STORED FUNCTION o un TRIGGER.
Hay particulairdades del tema explicadas en el manual de referencia:
https://dev.mysql.com/doc/refman/5.6...last-insert-id
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 04/05/2015, 16:47
Avatar de giuli956  
Fecha de Ingreso: noviembre-2012
Mensajes: 149
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: duda sobre last_insert_id

Claro ahora entiendo, hay muchos que tiene procdimientos almacnados para generar el nuevo id, y lo que me dijeron no se debe hacer pero funcionaria es:

Código MySQL:
Ver original
  1. select max(idticket) from ticket;

En el manual tampoco da una solucion...
  #4 (permalink)  
Antiguo 12/05/2015, 18:25
Avatar de giuli956  
Fecha de Ingreso: noviembre-2012
Mensajes: 149
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: duda sobre last_insert_id

Tambien he leido que la funcion last_insert_id() funciona para cada cliente por separado, entonces si mi aplciacion es de 3 capas(servidor de aplicaciones) y hay varios usuarios el valor no se pisa?
No se puede hacer un bloqueo sobre un registro a insertar? De esta manera se pueden iniciar varias transacciones de insercion de tickets.
De lo contrario se insertara un ticket a la vez y esto es un desperdicio de hardware..
Voy a seguir buscando en manuales..GRacias

Etiquetas: registro, select, 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 14:44.