Sobes.tech
Middle

Kako implementirati delimično poništavanje transakcije (ne potpuno, već do određene tačke)?

sobes.tech АИ

Одговор од АИ

Delimično vraćanje transakcije vrši se pomoću mehanizma tačaka čuvanja (savepoints). Savepoint omogućava uspostavljanje kontrolne tačke unutar transakcije, na koju se može vratiti bez poništavanja cele transakcije.

Primer u SQL (PostgreSQL):

BEGIN;
-- operacije 1
SAVEPOINT sp1;
-- operacije 2
-- ako je potrebno vratiti samo do sp1
ROLLBACK TO SAVEPOINT sp1;
-- nastavak transakcije
COMMIT;

Na ovaj način, moguće je vratiti promene samo nakon savepoint-a, dok su prethodne promene sačuvane u okviru iste transakcije.