Savepoint

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

Un savepoint (en español, punto de recuperación) es una forma de implementar subtransacciones (también conocidas como transacciones anidadas) dentro de un sistema gestor de base de datos relacional indicando un punto dentro de una transacción de base de datos que puede ser "rolled back" (devuelta) sin afectar a cualquier trabajo realizado en la transacción antes de que el punto de recuperación fuera creado. Varios savepoints pueden existir dentro de una transacción individual. Los Savepoints son útiles para implementar recuperación de errores complejos en aplicaciones de base de datos — si ocurre un error en el medio de una transacción de múltiples sentencias, la aplicación puede ser capaz de recuperarse del error (devolviendo, "roll back", hasta un savepoint) sin necesidad de abortar la transacción completa.

Un savepoint puede estar declarado emitiendo una sentencia SAVEPOINT name. Todos los cambios realizados después de un savepoint han sido declarados que pueden ser deshechos emitiendo un comando ROLLBACK TO SAVEPOINT name command. Emitiendo RELEASE SAVEPOINT name causará que el savepoint concreto sea descartado, pero no afectará a nada más. Emitiendo los comandos ROLLBACK o COMMIT también descartará cualesquiera savepoints creados desde el inicio de la transacción principal.

Savepoints son soportados de alguna u otra forma en sistemas de bases de datos tales como PostgreSQL, Oracle, Microsoft SQL Server, MySQL, DB2, y Firebird. Los Savepoints están también definidos en el estándard SQL.