sábado, 1 de junio de 2013

Savepoint (parte 1)

Con un savepoint, se puede hacer un rollback hasta una etiqueta creada durante una transacción. Este ejemplo, probado en Oracle 10, muestra el uso normal de un savepoint. Para empezar, creamos una tabla:

 SQL> create table nombres
  2  (nombre1 varchar2(10))
  3  /

Tabla creada.

SQL>


Y ponemos un nombre en la tabla:

SQL> insert into nombres values ('Andrew')
  2  /

1 fila creada.

SQL>

Entonces miramos el nombre en la tabla y creamos un savepoint:

SQL> select * from nombres
  2  /

NOMBRE1
----------
Andrew

SQL>

El savepoint se llama sp1:

SQL> savepoint sp1
  2  /

Punto de grabacion creado.

SQL>

Ahora cambiamos el nombre en la tabla:

SQL> update nombres set nombre1 = 'Brian'
  2  /

1 fila actualizada.

SQL> select * from nombres
  2  /

NOMBRE1
----------
Brian

SQL>


Por fin, hacemos un rollback al savepoint sp1: 

SQL> rollback to savepoint sp1
  2  /

Rollback terminado.

SQL>

Y verificamos que el nombre en la tabla sea Andrew otra vez:

SQL> select * from nombres
  2  /

NOMBRE1
----------
Andrew

SQL>

1 comentario: