
02/10/2014, 07:27
|
| | Fecha de Ingreso: octubre-2014 Ubicación: Bilbao
Mensajes: 14
Antigüedad: 10 años, 5 meses Puntos: 0 | |
Respuesta: Presentación y consulta He estado estudiando el tema y según creo entender mysql, por defecto, tiene establecido el nivel de aislamiento para las transacciones en "repeateable read" que, de los tres problemas descritos por el SQL estándar, sólo permite la "lectura fantasma", la cual no me preocupa, porque lo que yo quiero es que ningún registro leído con un select se pueda cambiar en otra transacción, es decir, hasta que no haga un rollback o un commit.
Desde phpmyadmin ejecuto la siguiente sentencia para comprobar que el nivel de aislamiento es, efectivamente, ""repeateable read":
SHOW VARIABLES LIKE 'tx_isolation'
y el resultado es el esperado:
Variable_name Value
tx_isolation REPEATABLE-READ
Ahora escribo en la pantalla de SQL de phpmyadmin:
BEGIN;
SELECT * FROM usuario WHERE ID='65';
ejecuto y me selecciona el usuario cuyo id es 65. Ahora abro phpmyadmin en otro navegador y hago un UDATE al mismo registro de la tabla usuario. Y permite la actualización, cuando no debiera permitirla hasta que se termine la transacción que he iniciado en el otro navegador.
No entiendo qué es lo que falla o lo que estoy haciendo mal. Agradecería cualquier pista que me ilumine.
Un saludo.
Agustín |