Transakcje wielooperacyjne
Teraz użyj kilku operacji w ramach jednej transakcji, aby ustawić flagę w kolumnie FIELD48 – w zależności od tego, czy dany rekord zawiera aktywa rządów stanowych USA (kolumna RCON2203), aktywa zagraniczne (kolumna RCON2236), czy oba rodzaje naraz.
Wartości FIELD48 powinny przyjmować odpowiednio: 'US-STATE-GOV', 'FOREIGN' lub 'BOTH'. Pola flag tego typu są powszechne w rządowych zbiorach danych i świetnie sprawdzają się do kategoryzowania rekordów.
To ćwiczenie jest częścią kursu
Transakcje i obsługa błędów w PostgreSQL
Instrukcje do ćwiczenia
- Rozpocznij transakcję.
- Napisz 3 instrukcje UPDATE, które wykryją każdy z warunków w kolumnie i ustawią flagę
FIELD48na odpowiednią wartość. - Zakończ transakcję.
- Wybierz liczbę rekordów, dla których flaga ma wartość
'BOTH'.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- 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 ___ = '___';