MulaiMulai sekarang secara gratis

Savepoint dan rollback

Melanjutkan pemikiran tentang jumlah deposito berjangka yang akan jatuh tempo dalam waktu dekat. Yang di atas 250 ribu memiliki dampak paling besar pada hasil yang terlihat selama pasar tahun 2008.

RCONHK12 (>=250k) menyimpan yang jatuh tempo dalam tiga bulan ke depan dan RCONHK13 (>=250k) menyimpan yang kedaluwarsa antara 3 hingga 12 bulan. Jika nilainya lebih tinggi dari $1 juta, hal ini dapat menyebabkan kekurangan dana di bank karena ini biasanya nasabah besar yang mungkin juga menarik aset lain. Sekali lagi, ada faktor positif jika nilainya kurang dari $500 ribu.

Saya membuat beberapa kesalahan dalam kode saya dengan menetapkan nilai yang salah untuk yang di atas $500 ribu!

Latihan ini adalah bagian dari kursus

Transaksi dan Penanganan Error di PostgreSQL

Lihat Kursus

Petunjuk latihan

  • Di dalam sebuah transaksi, setel FIELD48 menjadi mature+ jika total deposito yang akan jatuh tempo kurang dari $500 ribu dan tetapkan savepoint matureplus_flag_set.
  • Setel FIELD48 menjadi mature- jika total deposito yang akan jatuh tempo berada antara $500 ribu dan $1 juta lalu tetapkan savepoint matureminus_flag_set.
  • Setel FIELD48 menjadi mature-- jika total deposito yang akan jatuh tempo lebih besar dari $100 ribu (bukan $1 juta) — secara "tidak sengaja" menghilangkan sebuah 0.
  • Batalkan kembali hingga tepat setelah kita menyetel rekaman mature- dan hitung semua bank dengan jadwal jatuh tempo deposito mature--.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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--';
Edit dan Jalankan Kode