Rollbacks com múltiplas instruções
Agora vamos usar várias instruções em uma transação para definir um indicador em FIELD48 com base em manter ativos do governo estadual dos EUA representados em RCON2203, ativos estrangeiros representados em RCON2236, ou ambos. Os valores de FIELD48 devem ser 'US-STATE-GOV', 'FOREIGN' ou 'BOTH', respectivamente. No entanto, você cometeu um erro na instrução para o caso de ambos.
Este exercício faz parte do curso
Transações e Tratamento de Erros no PostgreSQL
Instruções do exercício
- Monte 3 instruções de update para detectar cada condição e definir o indicador.
- Desfaça o erro de defini-lo como
'BOOTH'em vez de'BOTH'fazendo rollback da transação. - Selecione a contagem de registros em que o indicador está definido como
'BOOTH'.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
-- Begin a new transaction
BEGIN;
-- Update FIELD48 flag status if US State Government deposits are held
UPDATE ffiec_reci
SET ___ = 'US-STATE-GOV'
WHERE RCON2203 > 0;
-- Update FIELD48 flag status if Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = '___'
WHERE RCON2236 > 0;
-- Update FIELD48 flag status if US State Government and Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = 'BOOTH'
WHERE RCON2236 > 0
AND ___ > 0;
-- Undo the mistake
___;
-- Select a count of records that are booth (it should be 0)
SELECT COUNT(FIELD48)
FROM ffiec_reci
WHERE ___ = 'BOOTH';