Terugrollen naar een savepoint

Transacties en foutafhandeling in PostgreSQL

Jason Myers

Principal Engineer

Zonder savepoints

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

UPDATE cost = 500 WHERE name = 'Macaron';

ROLLBACK;
Transacties en foutafhandeling in PostgreSQL

Savepoints en gericht terugrollen gebruiken

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

SAVEPOINT oops;
UPDATE cost = 500 WHERE name = 'Macaron';
ROLLBACK TO oops;
Transacties en foutafhandeling in PostgreSQL

Een savepoint vrijgeven als je klaar bent

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';
UPDATE cost = 2.33 WHERE name = 'Petit-Beurre';
UPDATE cost = 2.33 WHERE name = 'Rosette';

SAVEPOINT oops;

UPDATE cost = 5.00 WHERE name = 'Macaron';
UPDATE cost = 3.50 WHERE name = 'Panellets';
RELEASE SAVEPOINT oops;
Transacties en foutafhandeling in PostgreSQL

Twee belangrijke punten over rollbacks en savepoints

  • ROLLBACK zonder TO rolt de hele transactie terug
  • ROLLBACK TO ___ waarbij ___ geen geldige savepointnaam is, geeft een fout
Transacties en foutafhandeling in PostgreSQL

Laten we oefenen!

Transacties en foutafhandeling in PostgreSQL

Preparing Video For Download...