セーブポイントでロールバックする
前の演習に続いて、MMDA が 600 万ドルを超える銀行は、同じ資産クラスで 500〜600 万ドルの銀行に比べて景気後退期に持ちこたえる可能性が 2 倍高いことがわかりました。ここではサンプルコードに誤りがあるため、データの整合性を保つためにセーブポイントまでロールバックする必要があります。
この演習はコースの一部です
PostgreSQL におけるトランザクションとエラー処理
演習の手順
- トランザクション内で、
RCON6810(MMDA 金額)が 600 万ドル超の行のFIELD48を'MMDA+'に設定します。 mmdaplus_flag_setをセーブポイントとして設定します。RCON6810(MMDA 金額)が 500 万ドル超の行のFIELD48を'MMDA+'に設定します(これは誤りです)。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+';