多语句回滚
现在,请在一个事务中使用多条语句,根据是否持有由 RCON2203 表示的美国州政府资产、RCON2236 表示的海外资产,或两者兼有,来设置 FIELD48 的标记。FIELD48 的取值应分别为 'US-STATE-GOV'、'FOREIGN' 或 'BOTH'。不过,您在同时持有的语句中犯了一个错误。
本练习是课程的一部分
PostgreSQL 中的事务与错误处理
练习说明
- 编写 3 条 UPDATE 语句,检测每种情况并设置标记。
- 通过回滚事务,撤销将其设为
'BOOTH'而非'BOTH'的错误。 - 选择并返回标记被设为
'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';