Skip to content

Instantly share code, notes, and snippets.

@emersoncortez
Last active December 10, 2015 20:28
Show Gist options
  • Save emersoncortez/4488220 to your computer and use it in GitHub Desktop.
Save emersoncortez/4488220 to your computer and use it in GitHub Desktop.
-- La cuenta A y C serán cargadas (se les quitará) y
-- la cuenta B será abonada (se le sumará)
-- Inicio de la transacción
BEGIN;
-- Cargando la cuenta A.
UPDATE cuentas SET saldo_cuenta = saldo_cuenta - monto_a WHERE nombre_cuenta = 'A';
-- Cargando la cuenta C
UPDATE cuentas SET saldo_cuenta = saldo_cuenta - monto_c WHERE nombre_cuenta = 'C';
SAVEPOINT cargos_hecho;
-- Abonando la cuenta B.
UPDATE cuentas SET saldo_cuenta = saldo_cuenta + monto_a + monto_c WHERE nombre_cuenta = 'H';
-- Error: La cuenta a abonar era la cuenta B, no la H.
ROLLBACK TO cargos_hechos;
-- Actualizando la cuenta correcta.
UPDATE cuentas SET saldo_cuenta = saldo_cuenta + monto_a + monto_c WHERE nombre_cuenta = 'B';
-- Escribimos los cambios
COMMIT;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment