Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/11/2005, 12:18
phpman
 
Fecha de Ingreso: julio-2005
Ubicación: España
Mensajes: 91
Antigüedad: 18 años, 9 meses
Puntos: 0
Problema concurrencia

Bueno como creo q en MySQL no hay triggers ni nada parecido (si lo hay avisarme :D) pues tengo el siguiente problema.

Todos los identificadores de todos los registros de todas las tablas de mi base de datos los obtengo de una tabla "id" q solo tiene un campo con un valor numerico. Cada vez que inserto un nuevo registro en cualquier tabla, tengo q acceder primero a la tabla "id" para obtener el identificador del registro que quiero insertar y aumentar en uno el valor guardado en la tabla "id" para que ese identificador no se vuelva a repetir en otro registro.

Esto lo hago y va bien a priori, pero no m parece muy seguro hacer esto así. ¿Como me puedo asegurar que no se accede dos veces a la vez a la tabla "id" y obtienen el mismo identificador?¿Eso puede pasar no?¿Como lo puedo resolver?¿Hay otra forma más segura de hacer esto?

Tambien puede ocurrir q por lo q sea obtenga el identificador, ocurra un error y no se incremente la tabla id y q posteriormente se devuelva el mismo identificador para otro registro. ¿Hay alguna manera en MyQSL de hacer todo esto como una unica operacion?

Un Saludo.