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.