Sobes.tech
Middle

Como implementar uma reversão parcial de uma transação (não completa, mas até um determinado ponto)?

sobes.tech IA

Resposta da IA

Reversão parcial de uma transação é realizada usando o mecanismo de pontos de salvaguarda (savepoints). Um savepoint permite estabelecer um ponto de controlo dentro de uma transação, ao qual se pode regressar sem cancelar toda a transação.

Exemplo em SQL (PostgreSQL):

BEGIN;
-- operações 1
SAVEPOINT sp1;
-- operações 2
-- se precisar de reverter apenas até ao sp1
ROLLBACK TO SAVEPOINT sp1;
-- continuação da transação
COMMIT;

Desta forma, é possível reverter apenas as alterações após o savepoint, mantendo as alterações anteriores dentro de uma mesma transação.