Cita:
Empezado por HccSoft
Tendría el mismo problema que ahora. El problema es que entre el SELECT que busca el número mayor de ese campo y el insert alguien ha ejecutado esa misma consulta teniendo ambos usuarios el mismo número. Para que pase ha de dar la casualidad que los dos usuarios creen un nuevo registro a la vez. No ocurre casi nunca pero es algo que no me puedo permitir que falle.
Entre el SELECT y el INSERT pueden pasar milisegundos pero ya es suficiente como para encontrar registros con el mismo número.
Si invierto el proceso tendría el mismo problema a la hora de guardar y crear el nuevo número. Si dos usuarios guardaran a la vez, ambos acabarían con el mismo número como ahora.
|
La forma de hacer lo que digo es con una tabla que guarda un contador y que se bloquea en el momento de grabar el número incrementado.
Un Saludo.