ComenzarEmpieza gratis

Reversiones multisentencia

Ahora vamos a usar varias sentencias en una transacción para establecer un indicador en FIELD48 según si contiene activos del gobierno estatal de EE. UU. representados en RCON2203, activos extranjeros representados en RCON2236, o ambos. Los valores de FIELD48 deben ser 'US-STATE-GOV', 'FOREIGN' o 'BOTH', respectivamente. Sin embargo, has cometido un error en la sentencia para el caso de ambos.

Este ejercicio forma parte del curso

Transacciones y manejo de errores en PostgreSQL

Ver curso

Instrucciones del ejercicio

  • Crea 3 sentencias UPDATE para detectar cada condición y establecer el indicador.
  • Deshaz el error de establecerlo como 'BOOTH' en lugar de 'BOTH' haciendo un rollback de la transacción.
  • Selecciona un recuento de registros donde el indicador esté establecido en 'BOOTH'.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

-- 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';
Editar y ejecutar código