Cita: que sucede cuando un usuario intenta acceder a una tabla bloqueada? espera su turno o da error?
Cita: He encontrado cosas interesante pero nada que conteste mi pregunta :S
Entonces no has mirado los ejemplos con detalle. Mira este segmento del User B en
10.5 Ejemplos de Transacciones y Concurrencia (mismo link que te puse):
Código MySQL:
Ver original Query OK, 0 rows affected (0.00 sec)
.
.
.
.
.
.
.Wait unlock
A su vez, cuando la transacción del User B empieza, y el otro pretende hacer lo mismo, puede suceder esto:
Código MySQL:
Ver originalERROR
1213 (40001): Deadlock found
when trying
to get
lock;
>T1 tiene bloqueado a T2, T2 espera la liberacion
>al hacer el
update en T1 ahora T1 espera a T2
>por lo tanto se produce un deadlock
>el dbms hace
rollback en T1
(ultimo en espera
) y procesa T2
¿Queda claro?
Cuando hay una transacción en curso, el otro usuario espera hasta que o bien la tabla se libera, se produce una incompatibilidad de esperas, o se le acaba el timeout asignado por default...