多敘述 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';