Відкат до точки збереження

Транзакції та обробка помилок у PostgreSQL

Jason Myers

Principal Engineer

Без точок збереження

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

UPDATE cost = 500 WHERE name = 'Macaron';

ROLLBACK;
Транзакції та обробка помилок у PostgreSQL

Використання точок збереження й вибірковий відкат

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

SAVEPOINT oops;
UPDATE cost = 500 WHERE name = 'Macaron';
ROLLBACK TO oops;
Транзакції та обробка помилок у PostgreSQL

Звільнення точки збереження після завершення

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;
Транзакції та обробка помилок у PostgreSQL

Дві важливі речі про відкати й точки збереження

  • ROLLBACK без TO відкотить усю транзакцію
  • ROLLBACK TO ___, де ___ — неправильна назва точки збереження, спричинить помилку
Транзакції та обробка помилок у PostgreSQL

Давайте потренуємось!

Транзакції та обробка помилок у PostgreSQL

Preparing Video For Download...