Annulations multidéclarations
Utilisons maintenant plusieurs instructions dans une transaction pour définir un indicateur dans FIELD48 selon qu'il contient des actifs des gouvernements des États américains représentés dans RCON2203, des actifs étrangers représentés dans RCON2236, ou les deux. Les valeurs attendues pour FIELD48 sont respectivement 'US-STATE-GOV', 'FOREIGN' ou 'BOTH'. Cependant, vous avez fait une erreur dans l'instruction pour le cas « les deux ».
Cette activité fait partie du cours
Transactions et gestion des erreurs dans PostgreSQL
Instructions de l’exercice
- Rédigez 3 instructions UPDATE pour détecter chaque condition et définir l'indicateur.
- Annulez l'erreur où la valeur a été mise à
'BOOTH'au lieu de'BOTH'en annulant la transaction avec un ROLLBACK. - Sélectionnez le nombre d'enregistrements où l'indicateur est égal à
'BOOTH'.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
-- Begin a new transaction
BEGIN;
-- Update FIELD48 flag status if US State Government deposits are held
UPDATE ffiec_reci
SET ___ = 'US-STATE-GOV'
WHERE RCON2203 > 0;
-- Update FIELD48 flag status if Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = '___'
WHERE RCON2236 > 0;
-- Update FIELD48 flag status if US State Government and Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = 'BOOTH'
WHERE RCON2236 > 0
AND ___ > 0;
-- Undo the mistake
___;
-- Select a count of records that are booth (it should be 0)
SELECT COUNT(FIELD48)
FROM ffiec_reci
WHERE ___ = 'BOOTH';