Transacties met meerdere statements
Laten we nu meerdere statements in één transactie gebruiken om een vlag in FIELD48 te zetten op basis van of er Amerikaanse staatsobligaties staan in RCON2203, buitenlandse activa in RCON2236, of allebei.
De waarden voor FIELD48 moeten respectievelijk 'US-STATE-GOV', 'FOREIGN' of 'BOTH' zijn. Zulke vlagvelden komen vaak voor in overheidsgegevenssets en zijn ideaal om records te categoriseren.
Deze oefening maakt deel uit van de cursus
Transacties en foutafhandeling in PostgreSQL
Oefeninstructies
- Begin een transactie.
- Bouw 3 UPDATE-statements om elke voorwaarde in de kolom te detecteren en zet de
FIELD48-vlag op de juiste waarde. - Beëindig de transactie.
- Selecteer een telling van records waarbij de vlag is ingesteld op
'BOTH'.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- Begin a new transaction
___;
-- 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 ___ = 'FOREIGN'
WHERE RCON2236 > 0;
-- Update FIELD48 flag status if US State Government and Foreign deposits are held
UPDATE ffiec_reci
SET ___ = 'BOTH'
WHERE RCON2203 > 0
AND RCON2236 > 0;
-- Commit the transaction
___;
-- Select a count of records where FIELD48 is now BOTH
SELECT COUNT(FIELD48)
FROM ffiec_reci
WHERE ___ = '___';