Revenire la un savepoint

Tranzacții și gestionarea erorilor în PostgreSQL

Jason Myers

Principal Engineer

Fără savepoint-uri

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

UPDATE cost = 500 WHERE name = 'Macaron';

ROLLBACK;
Tranzacții și gestionarea erorilor în PostgreSQL

Utilizarea savepoint-urilor și a revenirilor țintite

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

SAVEPOINT oops;
UPDATE cost = 500 WHERE name = 'Macaron';
ROLLBACK TO oops;
Tranzacții și gestionarea erorilor în PostgreSQL

Eliberarea unui savepoint când nu mai este necesar

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;
Tranzacții și gestionarea erorilor în PostgreSQL

Două aspecte esențiale despre reveniri și savepoint-uri

  • ROLLBACK fără TO anulează întreaga tranzacție
  • ROLLBACK TO ___ unde ___ nu este un savepoint valid generează o eroare
Tranzacții și gestionarea erorilor în PostgreSQL

Să exersăm!

Tranzacții și gestionarea erorilor în PostgreSQL

Preparing Video For Download...