ComeçarComece de graça

Usando um nível de isolamento

Como você viu no vídeo, às vezes é importante selecionar um nível de isolamento para uma transação específica. O ideal é usar START TRANSACTION (um alias de BEGIN TRANSACTION) para deixar claro que algo está diferente. Você pode especificar um ISOLATION LEVEL ao iniciar a transação.

Aqui vamos usar REPEATABLE READ, que nos protege contra dirty reads, nonrepeatable reads e phantom reads. Nos dados do FFEIC, RCON2210 é o campo de depósitos à vista, e rastreia todas as contas-correntes em aberto, cheques emitidos pelo banco e créditos não lançados. Eles podem ser um passivo para o banco se houver uma corrida por fundos por qualquer motivo. Vamos encontrar todos os bancos com mais de US$ 100.000.000 em depósitos à vista.

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 com repeatable read.
  • Selecione todos os registros com RCON2210 acima de US$ 100.000.000 em depósitos à vista.
  • Selecione novamente todos os registros com RCON2210 ainda acima de US$ 100.000.000 em depósitos à vista.
  • Faça o commit da transação.

Exercício interativo prático

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

-- Create a new transaction with an isolation level of repeatable read
___ TRANSACTION ___ LEVEL ___ ___;

-- Count of records over 100000000
SELECT ___(RCON2210)
FROM ffiec_reci
WHERE ___ > ___;

-- Count of records still over 100000000
SELECT ___(RCON2210)
FROM ffiec_reci
WHERE ___ > ___;

-- Commit the transaction
___;
Editar e executar o código