Sobes.tech
Middle

Kaip įgyvendinti dalinį sandorio atšaukimą (ne visiškai, o iki tam tikros vietos)?

sobes.tech AI

Atsakymas iš AI

Dalinis transakcijos atšaukimas atliekamas naudojant išsaugojimo taškų (savepoints) mechanizmą. Savepoint leidžia nustatyti kontrolės tašką transakcijos viduje, į kurį galima grįžti nepašalinus visos transakcijos.

Pavyzdys SQL (PostgreSQL):

BEGIN;
-- operacijos 1
SAVEPOINT sp1;
-- operacijos 2
-- jei reikia grįžti tik iki sp1
ROLLBACK TO SAVEPOINT sp1;
-- transakcijos tęsinys
COMMIT;

Taip galima grąžinti pakeitimus tik po savepoint, išsaugant ankstesnius pakeitimus vienoje transakcijoje.