Revenir en arrière avec un point de reprise
En reprenant l'exercice précédent, on constate que les banques ayant plus de 6 M\( en MMDA ont deux fois plus de chances de tenir le coup lors d'un ralentissement que celles ayant entre 5 et 6 M\) dans cette même catégorie d'actifs. J'ai commis une erreur dans l'exemple de code, et nous devons revenir au point de reprise pour préserver l'intégrité des données.
Cette activité fait partie du cours
Transactions et gestion des erreurs dans PostgreSQL
Instructions de l’exercice
- Dans une transaction, définissez
FIELD48à'MMDA+'lorsqueRCON6810(montant MMDA) est supérieur à 6 M$. - Établissez
mmdaplus_flag_setcomme point de reprise (savepoint). - Définissez
FIELD48à'MMDA+'lorsqueRCON6810(montant MMDA) est supérieur à 5 M$ (c'est une erreur). - Annulez jusqu'à
mmdaplus_flag_set, terminez la transaction, puis comptez les enregistrements'MMDA+'.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
BEGIN;
-- Set the flag to MMDA+ where the value is greater than $6 million
UPDATE ffiec_reci set FIELD48 = 'MMDA+' where RCON6810 > 6000000;
-- Set a Savepoint
___ mmdaplus_flag_set;
-- Mistakenly set the flag to MMDA+ where the value is greater than $5 million
UPDATE ffiec_reci set FIELD48 = 'MMDA+' where ___ > 5000000;
-- Rollback to savepoint
___ TO ___;
COMMIT;
-- Select count of records where the flag is MMDA+
SELECT count(FIELD48) from ffiec_reci where FIELD48 = 'MMDA+';