Rollback dengan savepoint
Melanjutkan dari latihan sebelumnya, ternyata bank dengan MMDA lebih dari $6 juta memiliki kemungkinan dua kali lebih besar untuk bertahan saat penurunan dibandingkan bank dengan MMDA antara $5–6 juta pada kelas aset yang sama. Di sini terdapat kesalahan pada kode contoh, dan kita perlu melakukan rollback ke savepoint untuk menjaga integritas data.
Latihan ini adalah bagian dari kursus
Transaksi dan Penanganan Error di PostgreSQL
Petunjuk latihan
- Di dalam sebuah transaksi, setel
FIELD48ke'MMDA+'jikaRCON6810(jumlah MMDA) lebih besar dari $6 juta. - Tetapkan
mmdaplus_flag_setsebagai savepoint. - Setel
FIELD48ke'MMDA+'jikaRCON6810(jumlah MMDA) lebih besar dari $5 juta (ini adalah kesalahan). - Kembalikan ke
mmdaplus_flag_set, akhiri transaksi, dan hitung rekaman'MMDA+'.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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+';