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

¿Bloqueo o transacciones?

Estas en el tema de ¿Bloqueo o transacciones? en el foro de Mysql en Foros del Web. Hola a todos, tengo un pequeño problema que se ha planteado otras veces en el foro pero no encuentro una respuesta que me convenza del ...
  #1 (permalink)  
Antiguo 15/12/2011, 05:27
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
¿Bloqueo o transacciones?

Hola a todos, tengo un pequeño problema que se ha planteado otras veces en el foro pero no encuentro una respuesta que me convenza del todo a ver si alguien puede ayudarme

Estoy haciendo un gestor de contenidos que permite subir una imagen perteneciente a un determinado articulo (producto) , cuando se inserta un nuevo producto ha de subirse la imagen y el nombre de la misma en el servidor sera el ID de producto, es decir, si creo el producto con ID 3003 , la imagen sera 3003.jpg. Evidentemente he de recuperar el ID del ultimo producto insertado, tras realizar con exito la insercion. pero ... ¿que pasa si otro administrador esta insertando productos a la misma vez? podría obtener un ID erróneo.

ahora la cuestión que tengo y que a pesar de investigar y leer por el foro no he conseguido encontrar es

¿si realizo una transacción, se realizara ininterrumpidamente en el Servidor Mysql y me asegura que el ID recuperado es el de el elemento insertado o el servidor la ejecutara por partes y permitira que otro administrador ejecute la misma transaccion e inserte productos?
, se que los servidores ejecutan los trabajos por partes para no tener a ningun usuario esperando demasiado tiempo pero no me ha quedado claro si las transacciones son unidades indivisibles o no

gracias de antemano y un saludo.
  #2 (permalink)  
Antiguo 15/12/2011, 06:04
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: ¿Bloqueo o transacciones?

Las transacciones son por definición operaciones atómicas (indivisibles). Por lo que o se ejecutan completas o no se completan y se produce un ROLLBACK.
Además, una transacción sólo puede recibir a un único usuario/conexión. Dos conexiones, inclusive si pertenecen al mismo usuario, no pueden compartir la transacción.
En cuanto a tu problema puntual, hay en el manual de referencia un capítulo entero dedicado al tema de los identificadores y las claves autonuméricas en las trasacciones. Te recomiendo que lo leas.
__________________
¿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 15/12/2011, 06:07
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: ¿Bloqueo o transacciones?

gracias pro la rápida respuesta, voy a buscar el capitulo que me dices en el manual .

un saludo.

Etiquetas: transacciones, bloqueo
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 10:04.