Título: ¿alguna funcion similar a las secciones criticas de windows pero en sql? Publicado por: Filantropo en 16 Abril 2020, 06:22 am En una tabla de usuarios
tbUsuarios nombre clave telefono Lo que trato es imitar el comportamiento de la restriccion unique sobre el campo nombre que debe ser unico, en el procedimiento almacenado de insercion lo que hace es comprobar si algun usuario ya tiene el mismo nombre, si aun no entonces lo inserta pero si ya esta en uso NO inserta solo genera un error, tengo este codigo: Código:
Ahora la duda que tengo es que... sabiendo que una BD puede ser accedida por muchos aplicaciones en simultaneo y ademas que los procesos de aplicacion suelen crear varios hilos de ejecucion se me ocurrio que podria suceder que 2 apps traten de insertar al mismo tiempo usuarios con el mismo nombre y se ejecuta el sp_insertar_usuario 2 veces al mismo tiempo, al llegar al select ambos tienen el mismo resultado : "0" lo que significa quew el nombre todavia no esta en uso y llegan al if donde procede a realizar ambas inserciones con el mismo nombre, podria ocurrir un caso como este y como se podria evitar? En windows c++ ocurrian casos como este de acceso simultaneo a uns funcion y se usaba las secciones criticas para impedirlo. Título: Re: ¿alguna funcion similar a las secciones criticas de windows pero en sql? Publicado por: Shell Root en 16 Abril 2020, 14:58 pm Si crees que es muy posible que se ejecuten al mismo tiempo el script -teniendo en cuenta, horas/minutos/segundo/milisegundos-?
Título: Re: ¿alguna funcion similar a las secciones criticas de windows pero en sql? Publicado por: ThunderCls en 16 Abril 2020, 17:25 pm Has intentado usar Transactions/Isolation Levels?, creo que con eso puedes hacer lo que quieres
Título: Re: ¿alguna funcion similar a las secciones criticas de windows pero en sql? Publicado por: Filantropo en 20 Abril 2020, 04:44 am Has intentado usar Transactions/Isolation Levels?, creo que con eso puedes hacer lo que quieres Gracias. |