Meerdere savepoints en rollback

Transacties en foutafhandeling in PostgreSQL

Jason Myers

Principal Engineer

Meerdere savepoints

BEGIN TRANSACTION;

UPDATE inventory SET quantity = quantity - 1 WHERE name in ('flour', 'sugar');

SAVEPOINT inventory_step;

INSERT baking_list SET quantity=12 WHERE name='Torun';

SAVEPOINT queuing_step;

UPDATE cookies SET quantity = 12 WHERE name = 'Torun';
Transacties en foutafhandeling in PostgreSQL

Savepoint-namen dupliceren

  • Een nieuwe SAVEPOINT met dezelfde naam als een eerdere in dezelfde transactie overschaduwt die, in plaats van te overschrijven of vrij te geven!
  • Vermijd het hergebruiken van namen binnen een transactie.
Transacties en foutafhandeling in PostgreSQL

Voorbeeld: dubbele savepoint-naam

BEGIN TRANSACTION;

UPDATE inventory SET quantity = quantity - 1 WHERE name in ('flour', 'sugar');

SAVEPOINT oops;

INSERT baking_list SET quantity=12 WHERE name='Torun';

SAVEPOINT oops;

UPDATE cookies SET quantity = 12 WHERE name = 'Torun';
Transacties en foutafhandeling in PostgreSQL

Laten we oefenen!

Transacties en foutafhandeling in PostgreSQL

Preparing Video For Download...