ComeçarComece de graça

Níveis de isolamento e transações

SERIALIZABLE é um nível de isolamento que tira um snapshot do registro quando a primeira instrução de consulta ou atualização é executada e gera erro se os dados forem alterados de qualquer forma fora da transação. Observe que a transação pode fazer outras coisas, como declarar variáveis, antes da primeira consulta.

Você usará novamente o conjunto de dados da FFIEC para trabalhar com dados em que a variação anual nos depósitos de poupança RCON0352 é afetada por um grande desvio.

Este exercício faz parte do curso

Transações e Tratamento de Erros no PostgreSQL

Ver curso

Instruções do exercício

  • Inicie uma transação no modo SERIALIZABLE.
  • Atualize todos os registros em que RCON0352 é maior que 100.000 com uma redução de 50%.
  • COMMIT na transação.
  • Selecione a contagem dos registros que ainda têm RCON0352 maior que 100.000.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

-- 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 e executar o código