Middle
Hogyan valósítja meg a tranzakció részleges visszavonását (nem teljes, hanem egy adott pontig)?
sobes.tech MI
Válasz az MI-től
A tranzakció részleges visszavonása a mentési pontok (savepoints) mechanizmusával valósítható meg. Egy savepoint lehetővé teszi, hogy egy tranzakción belül ellenőrzési pontot állítson be, ahonnan visszatérhet anélkül, hogy az egész tranzakciót megszakítaná.
SQL példa (PostgreSQL):
BEGIN;
-- műveletek 1
SAVEPOINT sp1;
-- műveletek 2
-- ha csak sp1-ig akar visszalépni
ROLLBACK TO SAVEPOINT sp1;
-- a tranzakció folytatása
COMMIT;
Így csak a savepoint utáni változtatásokat lehet visszavonni, miközben a korábbi módosítások megmaradnak ugyanazon tranzakción belül.