ComeçarComece de graça

Fazendo rollback com um savepoint

Dando continuidade ao último exercício, descobrimos que bancos com mais de US\( 6 milhões em MMDAs têm o dobro de chance de se manter durante uma crise do que aqueles com entre US\) 5 e 6 milhões nessa mesma classe de ativos. Aqui há um erro no código de exemplo, e precisamos fazer rollback até o savepoint para manter a integridade dos dados.

Este exercício faz parte do curso

Transações e Tratamento de Erros no PostgreSQL

Ver curso

Instruções do exercício

  • Dentro de uma transação, defina FIELD48 como 'MMDA+' onde RCON6810 (valor de MMDA) for maior que US$ 6 milhões.
  • Defina mmdaplus_flag_set como um savepoint.
  • Defina FIELD48 como 'MMDA+' onde RCON6810 (valor de MMDA) for maior que US$ 5 milhões (isso é um erro).
  • Desfaça até mmdaplus_flag_set, finalize a transação e conte os registros 'MMDA+'.

Exercício interativo prático

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

BEGIN;

-- Set the flag to MMDA+ where the value is greater than $6 million
UPDATE ffiec_reci set FIELD48 = 'MMDA+' where RCON6810 > 6000000;

-- Set a Savepoint
___ mmdaplus_flag_set;

-- Mistakenly set the flag to MMDA+ where the value is greater than $5 million
UPDATE ffiec_reci set FIELD48 = 'MMDA+' where ___ > 5000000;

-- Rollback to savepoint
___ TO ___;

COMMIT;

-- Select count of records where the flag is MMDA+
SELECT count(FIELD48) from ffiec_reci where FIELD48 = 'MMDA+';
Editar e executar o código