En el estándar SQL, ¿cuál es el nivel de aislamiento más bajo que evita las lecturas no repetibles?
Opciones
- Read Uncommitted
- Read Committed
- Repeatable Read (Opción correcta)
- Serializable
Respuesta
Repeatable Read
Por qué
Una lectura no repetible: dentro de una transacción lees una fila dos veces y obtienes valores distintos, porque otra transacción la cambió e hizo commit entre medias.
Niveles, del más débil al más fuerte:
- Read Uncommitted: puede ver datos sin commit (dirty reads).
- Read Committed: sin dirty reads (por defecto en PostgreSQL).
- Repeatable Read: además, sin lecturas no repetibles.
- Serializable: además, sin phantoms (nuevas filas que coinciden y aparecen).
Recuerda
Read Committed < Repeatable Read < Serializable.