Sobes.tech
Middle

Jak implementovat částečný rollback transakce (ne úplný, ale do určitého bodu)?

sobes.tech AI

Odpověď od AI

Částečný rollback transakce se provádí pomocí mechanismu bodů uložení (savepoints). Savepoint umožňuje nastavit kontrolní bod uvnitř transakce, ke kterému je možné se vrátit, aniž by bylo nutné zrušit celou transakci.

Příklad v SQL (PostgreSQL):

BEGIN;
-- operace 1
SAVEPOINT sp1;
-- operace 2
-- pokud je potřeba vrátit pouze do sp1
ROLLBACK TO SAVEPOINT sp1;
-- pokračování transakce
COMMIT;

Tímto způsobem lze vrátit změny pouze po savepointu, přičemž předchozí změny zůstanou zachovány v rámci jedné transakce.