開始使用免費開始

使用隔離等級

就像影片中示範的,有時你需要為單一交易選擇隔離等級。最清楚的作法是使用 START TRANSACTIONBEGIN TRANSACTION 的別名)來開啟交易,並在開始時指定 ISOLATION LEVEL,以強調這次操作與眾不同。

這裡我們要使用 REPEATABLE READ,可避免 dirty read、nonrepeatable read 和 phantom read。在 FFEIC 資料中,RCON2210 代表活期存款欄位,追蹤所有未清的支票帳戶、銀行簽發的支票,以及尚未入帳的貸記。如果因任何原因出現擠兌,這些可能成為銀行的負債。我們來找出所有活期存款超過 $100,000,000 的銀行。

本練習屬於課程

PostgreSQL 的交易與錯誤處理

檢視課程

練習說明

  • 以 repeatable read 開始一個交易。
  • 查詢所有活期存款中 RCON2210 超過 $100,000,000 的紀錄。
  • 再次查詢 RCON2210 仍超過 $100,000,000 的所有紀錄。
  • 提交(commit)交易。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

-- Create a new transaction with an isolation level of repeatable read
___ TRANSACTION ___ LEVEL ___ ___;

-- Count of records over 100000000
SELECT ___(RCON2210)
FROM ffiec_reci
WHERE ___ > ___;

-- Count of records still over 100000000
SELECT ___(RCON2210)
FROM ffiec_reci
WHERE ___ > ___;

-- Commit the transaction
___;
編輯並執行程式碼