Powrót do punktu zapisu

Transakcje i obsługa błędów w PostgreSQL

Jason Myers

Principal Engineer

Bez punktów zapisu

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

UPDATE cost = 500 WHERE name = 'Macaron';

ROLLBACK;
Transakcje i obsługa błędów w PostgreSQL

Używanie punktów zapisu i selektywnych wycofań

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

SAVEPOINT oops;
UPDATE cost = 500 WHERE name = 'Macaron';
ROLLBACK TO oops;
Transakcje i obsługa błędów w PostgreSQL

Zwalnianie punktu zapisu po jego wykorzystaniu

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;
Transakcje i obsługa błędów w PostgreSQL

Dwie ważne zasady dotyczące wycofań i punktów zapisu

  • ROLLBACK bez TO wycofuje całą transakcję
  • ROLLBACK TO ___, gdzie ___ nie jest prawidłową nazwą punktu zapisu, spowoduje błąd
Transakcje i obsługa błędów w PostgreSQL

Czas na ćwiczenia!

Transakcje i obsługa błędów w PostgreSQL

Preparing Video For Download...