开始使用免费开始使用

使用保存点进行回滚

在上一个练习的基础上,事实证明,持有超过 $6 百万 MMDA 的银行在经济低迷期维持经营的可能性是持有 $5 到 6 百万同类资产银行的两倍。这里我在示例代码中犯了一个错误,我们需要回滚到保存点以保持数据一致性。

本练习是课程的一部分

PostgreSQL 中的事务与错误处理

查看课程

练习说明

  • 在一个事务中,将 RCON6810(MMDA 金额)大于 $6 百万的记录的 FIELD48 设为 'MMDA+'
  • mmdaplus_flag_set 设为保存点。
  • RCON6810(MMDA 金额)大于 $5 百万的记录的 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+';
编辑并运行代码