Saltar al contenido
Codifíca.me | Desarrollo web | Programación

Instrucción SAVEPOINT

5 enero, 2012

Con esta instrucción “SAVEPOINT”, pondremos un punto de referencia en las transacciones para poder realizar rollbacks parciales, es decir, deshacer cambios hasta donde nos interese.

Aquí va un ejemplo y así se entenderá mejor:

SQL> INSERT INTO PRUEBA (SELECT 'CAMPO'||LEVEL, LEVEL
     FROM DUAL CONNECT BY LEVEL <= 10);
 
10 ROWS created.
 
SQL> SAVEPOINT solocinco;
 
SAVEPOINT created.
 
SQL> DELETE FROM PRUEBA WHERE CAMPO2 > 5;
 
5 ROWS deleted.
 
SQL> SELECT * FROM PRUEBA;
 
CAMPO1                   CAMPO2
-------------------- ----------
CAMPO1                        1
CAMPO2                        2
CAMPO3                        3
CAMPO4                        4
CAMPO5                        5
 
SQL> ROLLBACK TO SAVEPOINT solocinco;
 
ROLLBACK complete.
 
SQL> SELECT * FROM PRUEBA;
 
CAMPO1                   CAMPO2
-------------------- ----------
CAMPO1                        1
CAMPO2                        2
CAMPO3                        3
CAMPO4                        4
CAMPO5                        5
CAMPO6                        6
CAMPO7                        7
CAMPO8                        8
CAMPO9                        9
CAMPO10                      10
 
10 ROWS selected.