Sobes.tech
Middle

Come implementare un rollback parziale di una transazione (non completo, ma fino a un certo punto)?

sobes.tech AI

Risposta dell'AI

Il rollback parziale di una transazione viene eseguito utilizzando il meccanismo dei punti di salvataggio (savepoints). Un savepoint consente di impostare un punto di controllo all'interno di una transazione, al quale è possibile tornare senza annullare l'intera transazione.

Esempio in SQL (PostgreSQL):

BEGIN;
-- operazioni 1
SAVEPOINT sp1;
-- operazioni 2
-- se si desidera tornare indietro solo fino a sp1
ROLLBACK TO SAVEPOINT sp1;
-- continuazione della transazione
COMMIT;

In questo modo, è possibile annullare le modifiche solo dopo il savepoint, mantenendo le modifiche precedenti all'interno della stessa transazione.