SAVEPOINT: defina un nuevo punto de guardado dentro de la transacción actual

Sinopsis

SAVEPOINT savepoint_name

Descripción

SAVEPOINT establece un nuevo punto de guardado dentro de la transacción actual.

Un punto de guardado es una marca especial dentro de una transacción que permite revertir todos los comandos que se ejecutan después de que se estableció, restaurando el estado de la transacción al que tenía en el momento del punto de guardado.

Parámetros

savepoint_name

El nombre que se dará al nuevo punto de guardado.

notas

Use ROLLBACK TO SAVEPOINT para retroceder a un punto de guardado. Use RELEASE SAVEPOINT para destruir un punto de guardado, manteniendo los efectos de los comandos ejecutados después de que se estableció.

Los puntos de guardado solo se pueden establecer dentro de un bloque de transacción. Puede haber múltiples puntos de guardado definidos dentro de una transacción.

Ejemplos

Para establecer un punto de guardado y luego deshacer los efectos de todos los comandos ejecutados después de su establecimiento:

BEGIN;INSERTINTO table1 VALUES(1);SAVEPOINT my_savepoint;INSERTINTO table1 VALUES(2);ROLLBACKTOSAVEPOINT my_savepoint;INSERTINTO table1 VALUES(3);COMMIT;

La transacción anterior insertará los valores 1 y 3, pero no el 2.

Para establecer y luego destruir un punto de guardado:

BEGIN;INSERTINTO table1 VALUES(3);SAVEPOINT my_savepoint;INSERTINTO table1 VALUES(4);RELEASESAVEPOINT my_savepoint;COMMIT;

La transacción anterior insertará tanto 3 como 4.

Compatibilidad

SQL requiere que un punto de guardado se destruya automáticamente cuando se establece otro punto de guardado con el mismo nombre. En PostgreSQL, se mantiene el antiguo punto de guardado, aunque solo se usará el más reciente al retroceder o liberar. (Liberar el nuevo punto de guardado con RELEASE SAVEPOINT hará que el anterior vuelva a ser accesible para ROLLBACK TO SAVEPOINT y RELEASE SAVEPOINT.) De lo contrario, SAVEPOINT es totalmente compatible con SQL.

Ver también

COMENZAR, COMPROMETER, LIBERAR SAVEPOINT, ROLLBACK, ROLLBACK TO SAVEPOINT

Anterior Arriba próximo
VOLVER AL PUNTO DE GUARDADO Casa ETIQUETA DE SEGURIDAD