開始使用免費開始

使用 savepoint 進行回復

延續上一題,結果發現持有超過 $6 million MMDA 的銀行,在景氣下行時維持營運的機率是持有 $5–6 million 同類資產銀行的兩倍。以下的範例程式碼有一個錯誤,我們需要回復到 savepoint 才能維持資料正確性。

本練習屬於課程

PostgreSQL 的交易與錯誤處理

檢視課程

練習說明

  • 在一個交易中,將 RCON6810(MMDA 金額)大於 $6 million 的紀錄,其 FIELD48 設為 'MMDA+'
  • 設定一個名為 mmdaplus_flag_set 的 savepoint。
  • RCON6810(MMDA 金額)大於 $5 million 的紀錄,其 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+';
編輯並執行程式碼