Punto de guardado - Savepoint

Un punto de guardado es una forma de implementar subtransacciones (también conocidas como transacciones anidadas ) dentro de un sistema de administración de base de datos relacional al indicar un punto dentro de una transacción que se puede " revertir " sin afectar el trabajo realizado en la transacción antes de que se creara el punto de guardado. Pueden existir múltiples puntos de rescate dentro de una sola transacción. Los puntos de guardado son útiles para implementar la recuperación de errores complejos en aplicaciones de bases de datos. Si ocurre un error en medio de una transacción de varios estados, la aplicación puede recuperarse del error (volviendo a un punto de guardado) sin necesidad de abortar toda la transacción.

Se puede declarar un punto de rescate emitiendo una declaración. Todos los cambios realizados después de que se haya declarado un punto de guardado pueden deshacerse emitiendo un comando. La emisión hará que el punto de guardado nombrado se descarte, pero no afectará nada de otra manera. Emitir los comandos o también descartará cualquier punto de guardado creado desde el inicio de la transacción principal. SAVEPOINT nameROLLBACK TO SAVEPOINT nameRELEASE SAVEPOINT nameROLLBACKCOMMIT

Los puntos de guardado se definen en el estándar SQL y son compatibles con todas las bases de datos relacionales SQL establecidas, incluidas PostgreSQL , Oracle Database , Microsoft SQL Server , MySQL , DB2 , SQLite (desde 3.6.8), Firebird , H2 Database Engine e Informix (desde la versión 11,50xC3).