開始使用免費開始

隔離等級與交易

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;
編輯並執行程式碼