En mi opinión, esto debería controlarse solo desde PHP, con un campo adicional en la tabla que quieres modificar.
Algo como:
Desde php
Código PHP:
Ver originalSELECT id,estado_registro
FROM turns
WHERE estado = 2 AND servicio_id = 2
ORDER BY id;
if($estado_registro="libre")
{
update turns set estado_registro='asignado' where ....;
}
else
{
print("El usuario ya ha sido asignado a otro operador");
}
//seguir trabajando con el registro
//Cuando termina de trabajar con el registro
update turns set estado_registro='libre' where ....;
Perdón por el PHP, simplemente es la logica que yo haría.