sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo producir lecturas fantasma?

La "lectura fantasma" en MySQL en el nivel de aislamiento RR está muy oculta, pero aún puede reproducirla. Estos son los pasos:

  1. crear tabla ab (una clave principal int, b int);

  2. Tx1:
    comenzar;
    seleccione * de ab; // conjunto vacio

  3. Tx2:
    comenzar;
    insertar en valores ab(1,1);
    commit;
  4. Tx1:
    seleccione * de ab; // conjunto vacío, falta la lectura fantasma esperada.
    actualizar ab establecer b =2 donde a =1; // 1 fila afectada.
    seleccione * de ab; // 1 fila. lectura fantasma aquí!!!!
    comprometerse;