Návrat k bodu uložení

Transakce a ošetření chyb v PostgreSQL

Jason Myers

Principal Engineer

Bez bodů uložení

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

UPDATE cost = 500 WHERE name = 'Macaron';

ROLLBACK;
Transakce a ošetření chyb v PostgreSQL

Použití bodů uložení a cílených návratů

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

SAVEPOINT oops;
UPDATE cost = 500 WHERE name = 'Macaron';
ROLLBACK TO oops;
Transakce a ošetření chyb v PostgreSQL

Uvolnění bodu uložení po dokončení

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;
Transakce a ošetření chyb v PostgreSQL

Dvě zásadní věci o návratech a bodech uložení

  • ROLLBACK bez TO vrátí celou transakci
  • ROLLBACK TO ___, kde ___ není platný název bodu uložení, způsobí chybu
Transakce a ošetření chyb v PostgreSQL

Pojďme si to procvičit!

Transakce a ošetření chyb v PostgreSQL

Preparing Video For Download...