开始使用免费开始使用

多语句回滚

现在,请在一个事务中使用多条语句,根据是否持有由 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';
编辑并运行代码