IniziaInizia gratis

Rollback con un savepoint

Proseguendo dall'esercizio precedente, risulta che le banche con più di 6 milioni di dollari in MMDA hanno il doppio delle probabilità di resistere durante una fase di recessione rispetto a quelle con tra 5 e 6 milioni nella stessa classe di attività. Nel codice di esempio qui c'è un errore e dobbiamo tornare al savepoint per mantenere l'integrità dei dati.

Questo esercizio fa parte del corso

Transazioni e gestione degli errori in PostgreSQL

Visualizza il corso

Istruzioni dell'esercizio

  • All'interno di una transazione imposta FIELD48 a 'MMDA+' dove RCON6810 (importo MMDA) è maggiore di 6 milioni di dollari.
  • Imposta mmdaplus_flag_set come savepoint.
  • Imposta FIELD48 a 'MMDA+' dove RCON6810 (importo MMDA) è maggiore di 5 milioni di dollari (questo è un errore).
  • Annulla fino a mmdaplus_flag_set, termina la transazione e conta i record 'MMDA+'.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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