Rulla tillbaka med en savepoint
Med utgångspunkt i föregående övning visar det sig att banker med mer än 6 miljoner dollar i MMDA är dubbelt så sannolika att klara en nedgång jämfört med dem som har mellan 5 och 6 miljoner dollar i samma tillgångsklass. Här har ett misstag gjorts i exempelkoden, och vi behöver rulla tillbaka till savepoint för att bevara dataintegriteteten.
Den här övningen är en del av kursen
Transaktioner och felhantering i PostgreSQL
Övningsinstruktioner
- Sätt
FIELD48till'MMDA+'inuti en transaktion därRCON6810(MMDA-beloppet) är större än 6 miljoner dollar. - Sätt
mmdaplus_flag_setsom en savepoint. - Sätt
FIELD48till'MMDA+'därRCON6810(MMDA-beloppet) är större än 5 miljoner dollar (detta är ett misstag). - Rulla tillbaka till
mmdaplus_flag_set, avsluta transaktionen och räkna'MMDA+'-posterna.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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+';