Ver Mensaje Individual
  #23 (permalink)  
Antiguo 05/09/2003, 03:43
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Cita:
nuevo con lo que tu planteas es lo mismo, compruebas que en el registro hay un 0, vale, por tanto está sin usar.

->Entre tú instrucción de comprobar el valor

****Entre las dos hay un período de tiempo en el que otro usuario ha podido almacenar 1 uno y eso tuya no lo tienes en cuenta no??

->Almacenar el 1

Es decir, tu compruebas que está libre, pero antes de almacenar el 1, otro puede comprobar que está libre y ya lo estais modificando los dos.
El truco esta en hacer esos dos pasos de forma excluyente, atomica, de una forma que nadie pueda modificar el valor entre la lectura y la escritura. En http://www.mysql.com/doc/en/ANSI_diff_Transactions.html al final tienes ejemplos de como hacerlo en MySQL.

Por cierto, distintos motores de base de datos tienen distintos metodos.

Cita:
ya se que puede paracer un metodo muy cutre, si comparamos con semaforos
La descripcion de nuevo es basicamente la de un semaforo (o la de una zona critica).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 05/09/2003 a las 03:45