Откат с использованием точки сохранения
Продолжая работу с предыдущим упражнением, выяснилось, что банки с объёмом MMDA более 6 миллионов долларов в два раза устойчивее в период экономического спада, чем банки с показателем от 5 до 6 миллионов долларов в том же классе активов. В примере кода допущена ошибка, и нам нужно выполнить откат к точке сохранения, чтобы сохранить целостность данных.
Это упражнение является частью курса
Транзакции и обработка ошибок в PostgreSQL
Инструкции к упражнению
- Внутри транзакции установите для
FIELD48значение'MMDA+'там, гдеRCON6810(сумма MMDA) превышает 6 миллионов долларов. - Установите
mmdaplus_flag_setв качестве точки сохранения. - Установите для
FIELD48значение'MMDA+'там, гдеRCON6810(сумма MMDA) превышает 5 миллионов долларов (это ошибка). - Выполните откат к
mmdaplus_flag_set, завершите транзакцию и подсчитайте записи со значением'MMDA+'.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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+';