ПочатиПочніть безкоштовно

Відкат за допомогою savepoint

Продовжуючи попередню вправу, виявляється, що банки з понад $6 млн у MMDA у двічі частіше тримаються під час спаду, ніж ті, що мають між $5 і 6 млн у цьому ж класі активів. У наведеному зразку коду я припустився помилки, тож нам потрібно відкотитися до savepoint, щоб зберегти цілісність даних.

Ця вправа є частиною курсу

Транзакції та обробка помилок у PostgreSQL

Переглянути курс

Інструкції до вправи

  • Усередині транзакції встановіть FIELD48 у значення 'MMDA+' там, де RCON6810 (сума MMDA) більша за $6 млн.
  • Створіть savepoint з назвою 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+';
Редагувати та запускати код