การทำงานกับ Repeatable Read
จากที่ได้ดูวิดีโอไปแล้ว มาลองปฏิบัติจริงกับธุรกรรมแบบ Repeatable Read กัน เราต้องการกำหนดค่า "ความมั่นคง" สำหรับสินทรัพย์ภายในของธนาคาร หากธนาคารนั้นรับฝากเงินจากลูกค้า โดยจะตั้งค่าฟิลด์กำหนดเอง FIELD48 ให้เท่ากับค่า Retainer ตามสถานะที่ระบุใน RCONP752
หากมีธุรกรรมภายนอกเข้ามาแทรกแซง การนำค่าตัวคูณไปใช้อาจผิดพลาดได้ Repeatable Read จะป้องกันธุรกรรมของเราจากการที่ข้อมูลถูกแก้ไขโดยแหล่งภายนอก นับตั้งแต่ที่รันคิวรีแรกในธุรกรรมนั้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Transactions and Error Handling in PostgreSQL
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Create a new transaction with a repeatable read isolation level
___ ___ ___ ___ ___ ___;
-- Update records for banks that allow consumer deposit accounts
UPDATE ffiec_reci
SET FIELD48 = 100
WHERE RCONP752 = 'true';
-- Update records for banks that do not allow consumer deposit accounts
UPDATE ffiec_reci
SET FIELD48 = 50
WHERE RCONP752 = 'false';
-- Commit the transaction
___;