Återgå till en savepoint

Transaktioner och felhantering i PostgreSQL

Jason Myers

Principal Engineer

Utan savepoints

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

UPDATE cost = 500 WHERE name = 'Macaron';

ROLLBACK;
Transaktioner och felhantering i PostgreSQL

Använda savepoints och riktade rollbacks

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

SAVEPOINT oops;
UPDATE cost = 500 WHERE name = 'Macaron';
ROLLBACK TO oops;
Transaktioner och felhantering i PostgreSQL

Frigör en savepoint när du är klar

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;
Transaktioner och felhantering i PostgreSQL

Två viktiga saker om rollbacks och savepoints

  • ROLLBACK utan TO återställer hela transaktionen
  • ROLLBACK TO ___ där ___ inte är ett giltigt savepoint-namn ger ett fel
Transaktioner och felhantering i PostgreSQL

Nu kör vi en övning!

Transaktioner och felhantering i PostgreSQL

Preparing Video For Download...