ComenzarEmpieza gratis

Niveles de aislamiento y transacciones

SERIALIZABLE es un nivel de aislamiento que toma una instantánea del registro cuando se ejecuta la primera consulta o instrucción de actualización y genera un error si los datos se alteran de cualquier forma fuera de la transacción. Ten en cuenta que la transacción puede hacer otros trabajos, como declarar variables, antes de la primera consulta.

Volverás a usar el conjunto de datos de la FFIEC para trabajar con datos donde el cambio anual en los depósitos de ahorro RCON0352 se ve afectado por un gran desplazamiento.

Este ejercicio forma parte del curso

Transacciones y manejo de errores en PostgreSQL

Ver curso

Instrucciones del ejercicio

  • Inicia una transacción en modo SERIALIZABLE.
  • Actualiza todos los registros donde RCON0352 sea mayor que 100,000 con una reducción del 50%.
  • COMMIT de la transacción.
  • Selecciona el recuento de los registros que aún tengan un RCON0352 mayor que 100,000.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

-- Create a new transaction with a serializiable isolation level
___ TRANSACTION ISOLATION LEVEL ___;

-- Update records with a 50% reduction if greater than 100000
___ ffiec_reci
SET ___ = ___ * 0.5
WHERE RCON0352 > 100000;

-- Commit the transaction
___;

-- Select a count of records still over 100000
SELECT ___(RCON0352)
FROM ___
WHERE RCON0352 > 100000;
Editar y ejecutar código