開始使用免費開始

多敘述 Rollback

現在來在同一個交易中使用多個敘述,根據是否持有美國州政府資產(RCON2203)、國外資產(RCON2236),或兩者皆有,來在 FIELD48 設定旗標。FIELD48 的值應分別為 'US-STATE-GOV''FOREIGN',或 'BOTH'。不過,你在處理「兩者皆有」的敘述時犯了錯。

本練習屬於課程

PostgreSQL 的交易與錯誤處理

檢視課程

練習說明

  • 撰寫 3 個 UPDATE 敘述以偵測每種情況並設定旗標。
  • 你把應該是 'BOTH' 的值誤設為 'BOOTH',請透過回滾交易來還原這個錯誤。
  • 查詢旗標被設為 'BOOTH' 的筆數。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

-- Begin a new transaction
BEGIN;

-- Update FIELD48 flag status if US State Government deposits are held
UPDATE ffiec_reci
SET ___ = 'US-STATE-GOV'
WHERE RCON2203 > 0;

-- Update FIELD48 flag status if Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = '___'
WHERE RCON2236 > 0;

-- Update FIELD48 flag status if US State Government and Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = 'BOOTH'
WHERE RCON2236 > 0
AND ___ > 0;

-- Undo the mistake
___; 

-- Select a count of records that are booth (it should be 0)
SELECT COUNT(FIELD48)
FROM ffiec_reci
WHERE ___ = 'BOOTH';
編輯並執行程式碼