Puncte de salvare multiple și rollback

Tranzacții și gestionarea erorilor în PostgreSQL

Jason Myers

Principal Engineer

Puncte de salvare multiple

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';
Tranzacții și gestionarea erorilor în PostgreSQL

Duplicarea numelor de savepoint

  • Un nou SAVEPOINT cu același nume ca unul anterior din aceeași tranzacție îl umbrește, fără a-l suprascrie sau elibera!
  • În general, evitați reutilizarea numelor în cadrul unei tranzacții.
Tranzacții și gestionarea erorilor în PostgreSQL

Exemplu de nume de savepoint duplicat

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';
Tranzacții și gestionarea erorilor în PostgreSQL

Să exersăm!

Tranzacții și gestionarea erorilor în PostgreSQL

Preparing Video For Download...