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.