Транзакции с несколькими операторами
Теперь используем несколько операторов в одной транзакции, чтобы установить флаг в поле FIELD48 в зависимости от того, содержит ли запись активы государственных органов США (поле RCON2203), иностранные активы (поле RCON2236) или и те и другие.
Допустимые значения для FIELD48: 'US-STATE-GOV', 'FOREIGN' или 'BOTH' соответственно. Поля-флаги подобного рода широко используются в государственных наборах данных — они удобны для категоризации записей.
Это упражнение является частью курса
Транзакции и обработка ошибок в PostgreSQL
Инструкции к упражнению
- Начните транзакцию.
- Напишите 3 оператора UPDATE, чтобы определить каждое условие в столбце и присвоить флагу
FIELD48соответствующее значение. - Завершите транзакцию.
- Выберите количество записей, у которых флаг установлен в значение
'BOTH'.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
-- 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 ___ = '___';