CommencerCommencer gratuitement

Savepoints et rollback

Poursuivons la réflexion sur le montant des dépôts à terme arrivant à échéance prochainement. Ceux de plus de 250 k$ ont eu le plus d’impact sur les résultats observés lors du marché de 2008.

RCONHK12 (>= 250 k$) stocke ceux qui arrivent à échéance dans les trois prochains mois et RCONHK13 (>= 250 k\() ceux qui expirent entre 3 et 12 mois. S’ils dépassent 1 million de dollars, cela peut provoquer une pénurie de liquidités dans une banque, car il s’agit généralement de gros clients susceptibles de retirer aussi d’autres actifs. À l’inverse, il y a un effet positif si ces montants sont inférieurs à 500 k\).

J’ai commis quelques erreurs dans mon code en définissant une mauvaise valeur pour ceux de plus de 500 k$ !

Cet exercice fait partie du cours

Transactions et gestion des erreurs dans PostgreSQL

Afficher le cours

Instructions

  • Dans une transaction, définissez FIELD48 sur mature+ si le total des dépôts arrivant à échéance est inférieur à 500 k$, puis définissez un savepoint matureplus_flag_set.
  • Définissez FIELD48 sur mature- si le total des dépôts arrivant à échéance est compris entre 500 k\( et 1 M\), puis définissez un savepoint matureminus_flag_set.
  • Définissez FIELD48 sur mature-- si le total des dépôts arrivant à échéance est supérieur à 100 k\( (et non 1 M\)) – en « oubliant » accidentellement un 0.
  • Annulez jusqu’à juste après l’étape où nous avons défini les enregistrements mature-, puis comptez toutes les banques ayant un échéancier de dépôts mature--.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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--';
Modifier et exécuter le code