Sobes.tech
Middle

Jak zaimplementować częściowy cofnięcie transakcji (nie pełne, ale do określonego punktu)?

sobes.tech AI

Odpowiedź od AI

Częściowy cofnięcie transakcji realizuje się za pomocą mechanizmu punktów zapisu (savepoints). Savepoint pozwala ustawić punkt kontrolny w obrębie transakcji, do którego można się cofnąć bez anulowania całej transakcji.

Przykład w SQL (PostgreSQL):

BEGIN;
-- operacje 1
SAVEPOINT sp1;
-- operacje 2
-- jeśli trzeba cofnąć tylko do sp1
ROLLBACK TO SAVEPOINT sp1;
-- kontynuacja transakcji
COMMIT;

W ten sposób można cofnąć zmiany tylko po savepoint, zachowując wcześniejsze zmiany w ramach jednej transakcji.