Bir isolation level kullanma
Videoda gördüğün gibi, bazen tek bir işlem için bir isolation level seçebilmek önemlidir. Bunu yapmanın en iyi yolu, bir şeylerin farklı olduğunu netleştirmek için BEGIN TRANSACTION ile eş anlamlı olan START TRANSACTION kullanmaktır. İşlemi başlatırken bir ISOLATION LEVEL belirtebilirsin.
Burada bizi dirty read, nonrepeatable read ve phantom read durumlarına karşı koruyan REPEATABLE READ kullanacağız. FFEIC verilerinde RCON2210, vadesiz mevduat alanıdır ve tüm karşılıksız çek hesaplarını, banka tarafından düzenlenen çekleri ve postalanmamış alacakları izler. Herhangi bir nedenle ani bir fon çekilişi olursa bunlar banka için bir yükümlülük olabilir. Hadi vadesiz mevduatları 100.000.000 $ üzerindeki tüm bankaları bulalım.
Bu egzersiz
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi
kursunun bir parçasıdırEgzersiz talimatları
- Repeatable read ile bir işlem başlat.
- Talep mevduatlarında
RCON2210değeri 100.000.000 $ üzerindeki tüm kayıtları seç. RCON2210değeri hâlâ 100.000.000 $ üzerindeki tüm kayıtları seç.- İşlemi commit et.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
-- 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
___;