ComenzarEmpieza gratis

Savepoints y deshacer cambios

Seguimos pensando en la cantidad de depósitos a plazo que vencen en el corto plazo. Los de más de 250 K tienen el mayor impacto en los resultados observados durante el mercado de 2008.

RCONHK12 (>=250k) guarda los que vencen en los próximos tres meses y RCONHK13 (>=250k) guarda los que vencen entre 3 y 12 meses. Si estos superan 1 millón de dólares, pueden provocar falta de liquidez en un banco, ya que suelen corresponder a clientes grandes que podrían retirar también otros activos. De nuevo, hay un factor positivo si estos son inferiores a 500 K.

¡He cometido algunos errores en mi código al establecer el valor incorrecto para los de más de 500 mil dólares!

Este ejercicio forma parte del curso

Transacciones y manejo de errores en PostgreSQL

Ver curso

Instrucciones del ejercicio

  • Dentro de una transacción, establece FIELD48 en mature+ si el total de depósitos que vencen es inferior a 500 mil dólares y crea un savepoint matureplus_flag_set.
  • Establece FIELD48 en mature- si el total de depósitos que vencen está entre 500 mil dólares y 1 millón; después crea un savepoint matureminus_flag_set.
  • Establece FIELD48 en mature-- si el total de depósitos que vencen es mayor que 100 mil dólares (no 1 millón) — “por accidente” omitiendo un 0.
  • Deshaz hasta justo después de haber establecido los registros mature- y cuenta todos los bancos con un plan de vencimiento de depósitos mature--.

Ejercicio interactivo práctico

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

BEGIN;

-- Update FIELD48 to indicate a positive maturity rathing when less than $500 thousand.
UPDATE ffiec_reci 
SET ___ = '___' 
WHERE RCONHK12 + RCONHK13 < 500000;

-- Set a savepoint
SAVEPOINT ___;

-- Update FIELD48 to indicate a negative maturity rathing when between $500 thousand and $1 million.
UPDATE ffiec_reci 
___ 
WHERE RCONHK12 + RCONHK13 BETWEEN ___ AND ___;

-- Set a savepoint
SAVEPOINT ___;

-- Accidentailly update FIELD48 to indicate a double negative maturity rating when more than 100K
UPDATE ffiec_reci 
SET ___ = '___' 
WHERE RCONHK12 + RCONHK13 > 100000;

-- Rollback to before the last mistake
ROLLBACK TO ___;

-- Select count of records with a double negative indicator
SELECT count(FIELD48) 
from ffiec_reci 
WHERE FIELD48 = 'mature--';
Editar y ejecutar código