IniziaInizia gratis

Rollback multi-istruzione

Ora usiamo più istruzioni in una transazione per impostare un flag in FIELD48 in base al fatto che contenga asset del governo statale USA rappresentati in RCON2203, asset esteri rappresentati in RCON2236, oppure entrambi. I valori per FIELD48 dovrebbero essere rispettivamente 'US-STATE-GOV', 'FOREIGN' o 'BOTH'. Tuttavia, hai commesso un errore nell’istruzione per il caso “entrambi”.

Questo esercizio fa parte del corso

Transazioni e gestione degli errori in PostgreSQL

Visualizza il corso

Istruzioni dell'esercizio

  • Crea 3 istruzioni di UPDATE per rilevare ciascuna condizione e impostare il flag.
  • Annulla l’errore di averlo impostato su 'BOOTH' invece di 'BOTH' eseguendo il rollback della transazione.
  • Seleziona un conteggio dei record in cui il flag è impostato su 'BOOTH'.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

-- 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';
Modifica ed esegui il codice