Savepoint'in izolasyon seviyelerine etkisi
Artık savepoint'leri keşfettiğine göre, hepsinin verinin aynı başlangıç anlık görüntüsüyle çalışması gereken bir dizi işlemi kurmak için onları kullanalım. REPEATABLE READ, işlem içindeki her ifadeye, önceki ifade(ler)in sonucundaki veriler yerine, ilk ifadenin üzerinde çalıştığı aynı veriyi verme olanağı sağlayan bir izolasyon seviyesidir.
Kısa süre önce, veri kümesinde yabancı mevduatların kademeli kısıtlanmasına (bin dolar cinsinden RCON2203 alanı) FFEIC tarafından izin verildi. Yeni kısıtlama; 1 milyar \('dan fazlası için %35, 500 milyon \)'dan fazlası için %25 ve 300 milyon $'dan fazlası için %13’tür. Bu ifadeleri veriyi birden fazla kez azaltmaktan kaçınacak şekilde sıralamak mümkündür. Ancak, REPEATABLE READ ile ifadeler, herhangi bir ayarlama yapılmadan önceki veriyi görür.
Bu egzersiz
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi
kursunun bir parçasıdırEgzersiz talimatları
REPEATABLE READişlemi başlat.RCON2203değerini, 1 milyar \('dan fazlaysa %35, 500 milyon \)'dan fazlaysa %25 veya 300 milyon $'dan fazlaysa %13 azalt ve her adımın ardından birSAVEPOINToluştur.- İşlemi kapat.
RCON2203alanını topla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
-- Create a new transaction with a repeatable read isolation level
___ TRANSACTION ISOLATION LEVEL ___ ___;
-- Update records with a 35% reduction if greater than 1000000000
UPDATE ffiec_reci
SET ___ = CAST(___ AS FLOAT) * .65
WHERE CAST(RCON2203 AS FLOAT) > 1000000000;
___ million;
-- Update records with a 25% reduction if greater than 500000000
UPDATE ___
___ ___ = CAST(___ AS FLOAT) * .75
___ CAST(RCON2203 AS FLOAT) ___ 500000000;
SAVEPOINT five_hundred;
-- Update records with a 13% reduction if greater than 300000000
___ ffiec_reci
___ ___ = CAST(___ AS FLOAT) * .87
___ CAST(___ AS FLOAT) ___ 300000000;
SAVEPOINT three_hundred;
-- Commit the transaction
___;
-- Select SUM the RCON2203 field
SELECT ___(CAST(RCON2203 AS FLOAT))
FROM ffiec_reci