隔离级别与事务
SERIALIZABLE 是一种隔离级别:当发出第一条查询或更新语句时,会对记录进行快照;若在事务之外以任何方式更改了这些数据,将报错。请注意,事务在第一条查询之前也可以执行其他工作,例如声明变量。
您将再次使用 FFIEC 数据集,处理年度储蓄存款变动 RCON0352 受大幅偏移影响的数据。
本练习是课程的一部分
PostgreSQL 中的事务与错误处理
练习说明
- 以
SERIALIZABLE模式启动一个事务。 - 将所有
RCON0352大于 100,000 的记录按 50% 的幅度下调。 COMMIT该事务。- 选择仍然
RCON0352大于 100,000 的记录数量。
交互式实操练习
通过完成这段示例代码来试试这个练习。
-- Create a new transaction with a serializiable isolation level
___ TRANSACTION ISOLATION LEVEL ___;
-- Update records with a 50% reduction if greater than 100000
___ ffiec_reci
SET ___ = ___ * 0.5
WHERE RCON0352 > 100000;
-- Commit the transaction
___;
-- Select a count of records still over 100000
SELECT ___(RCON0352)
FROM ___
WHERE RCON0352 > 100000;