BaşlayınÜcretsiz Başlayın

Savepoint'ler ve geri alma

Yakın gelecekte vadesi dolacak vadeli mevduat tutarı üzerinde düşünmeye devam edelim. 250 binin üzerindekiler, 2008 piyasasında görülen sonuçlar üzerinde en büyük etkiye sahipti.

RCONHK12 (>=250k) önümüzdeki üç ayda vadesi dolacak olanları, RCONHK13 (>=250k) ise 3 ile 12 ay arasında vadesi dolacak olanları saklar. Bunlar 1 milyon doların üzerindeyse, genellikle bankanın daha büyük müşterileri oldukları ve diğer varlıklarını da çekebilecekleri için bankada fon sıkıntısına yol açabilir. Yine, bunlar 500 bin doların altındaysa bu pozitif bir faktördür.

500 bin doların üzerindekiler için yanlış değer ayarlayarak kodumda birkaç hata yaptım!

Bu egzersiz

PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Bir işlem (transaction) içinde, toplam vadesi dolacak mevduat 500 bin doların altındaysa FIELD48 değerini mature+ yap ve bir savepoint matureplus_flag_set ayarla.
  • Toplam vadesi dolacak mevduat 500 bin dolar ile 1 milyon dolar arasındaysa FIELD48 değerini mature- yap, sonra bir savepoint matureminus_flag_set ayarla.
  • Toplam vadesi dolacak mevduat 100 bin doların üzerindeyse (1 milyon değil) FIELD48 değerini mature-- yap — "kazara" bir 0 eksik yazıyoruz.
  • mature- kayıtlarını ayarladıktan hemen sonraya geri dön ve mature-- vade planına sahip tüm bankaları say.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

BEGIN;

-- Update FIELD48 to indicate a positive maturity rathing when less than $500 thousand.
UPDATE ffiec_reci 
SET ___ = '___' 
WHERE RCONHK12 + RCONHK13 < 500000;

-- Set a savepoint
SAVEPOINT ___;

-- Update FIELD48 to indicate a negative maturity rathing when between $500 thousand and $1 million.
UPDATE ffiec_reci 
___ 
WHERE RCONHK12 + RCONHK13 BETWEEN ___ AND ___;

-- Set a savepoint
SAVEPOINT ___;

-- Accidentailly update FIELD48 to indicate a double negative maturity rating when more than 100K
UPDATE ffiec_reci 
SET ___ = '___' 
WHERE RCONHK12 + RCONHK13 > 100000;

-- Rollback to before the last mistake
ROLLBACK TO ___;

-- Select count of records with a double negative indicator
SELECT count(FIELD48) 
from ffiec_reci 
WHERE FIELD48 = 'mature--';
Kodu Düzenle ve Çalıştır