Flera savepoints och rollback

Transaktioner och felhantering i PostgreSQL

Jason Myers

Principal Engineer

Flera 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';
Transaktioner och felhantering i PostgreSQL

Duplicerade savepoint-namn

  • En ny SAVEPOINT med samma namn som en tidigare i samma transaktion skuggar den i stället för att skriva över eller frigöra den!
  • Undvik generellt att återanvända namn inom en transaktion.
Transaktioner och felhantering i PostgreSQL

Exempel på duplicerat savepoint-namn

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';
Transaktioner och felhantering i PostgreSQL

Nu kör vi en övning!

Transaktioner och felhantering i PostgreSQL

Preparing Video For Download...