Transacciones con múltiples sentencias
Ahora vamos a usar varias sentencias en una transacción para establecer una marca en FIELD48 según si contiene activos de gobiernos estatales de EE. UU. representados en RCON2203, activos extranjeros representados en RCON2236, o ambos.
Los valores de FIELD48 deben ser, respectivamente, 'US-STATE-GOV', 'FOREIGN' o 'BOTH'. Los campos de tipo bandera como este son habituales en conjuntos de datos gubernamentales y van muy bien para categorizar registros.
Este ejercicio forma parte del curso
Transacciones y manejo de errores en PostgreSQL
Instrucciones del ejercicio
- Inicia una transacción.
- Crea 3 sentencias UPDATE para detectar cada condición en la columna y establecer la marca
FIELD48con el valor correcto. - Finaliza la transacción.
- Selecciona un recuento de registros donde la marca esté establecida en
'BOTH'.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
-- 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 ___ = '___';