Vários savepoints e rollback

Transações e Tratamento de Erros no PostgreSQL

Jason Myers

Principal Engineer

Vários 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';
Transações e Tratamento de Erros no PostgreSQL

Duplicando nomes de savepoint

  • Um novo SAVEPOINT com o mesmo nome de um anterior na mesma transação o sombreia, em vez de sobrescrever ou liberar!
  • Em geral, evite reutilizar nomes dentro de uma transação.
Transações e Tratamento de Erros no PostgreSQL

Exemplo de nome de savepoint duplicado

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';
Transações e Tratamento de Erros no PostgreSQL

Vamos praticar!

Transações e Tratamento de Erros no PostgreSQL

Preparing Video For Download...