Forma correcta de manejar la concurrencia en SQL
Posted: Wed Nov 04, 2020 5:33 pm
Un saludo a todos
La question es que me planteo si lo que estoy haciendo es correcto o tendré problemas futuros,
Estoy haciendo pruebas en SQL y tengo programado el proceso de concurrencia como sigue:
1 Muestro en un browse una serie de tareas para realizar
Un usuario selecciona una tarea para consultar.
El usuario intenta seleccionar la tarea para realizar (actualizacion). En este momento necesito asegurarme que otro usuario no intente "actualización" modificar esta misma tarea.
5 El usuario finaliza la actualización de la tarea, ya sea grabando, cancelando o por timeout
Bien, el proceso se ejecuta correctamente y si otro usario intenta acceder al mismo registro se produce un error que puedo controlar.
¿Es esta la forma correcta de realizarlo o debería plantearme otras alternativas (tablas de bloqueos,...) ?
Un saludo y gracias por vuestra atención
La question es que me planteo si lo que estoy haciendo es correcto o tendré problemas futuros,
Estoy haciendo pruebas en SQL y tengo programado el proceso de concurrencia como sigue:
1 Muestro en un browse una serie de tareas para realizar
Code: Select all
SELECT ......
Code: Select all
SELECT ... FOR id=xxx
Code: Select all
START TRANSACTION...
SELECT .... FOR Id=xxx FOR UPDATE
Vuelvo a presentar los datos (por si se modificaron desde otro terminal)
Code: Select all
COMMIT
¿Es esta la forma correcta de realizarlo o debería plantearme otras alternativas (tablas de bloqueos,...) ?
Un saludo y gracias por vuestra atención