Bun venit la Tranzacții și gestionarea erorilor în PostgreSQL

Tranzacții și gestionarea erorilor în PostgreSQL

Jason Myers

Principal Engineer

Obiective de învățare și seturi de date

  • Menținerea integrității datelor cu tranzacții
  • Efectele concurenței asupra tranzacțiilor
  • Gestionarea erorilor cu tranzacții
Tranzacții și gestionarea erorilor în PostgreSQL

Motivație pentru utilizarea tranzacțiilor

patient_intake

name priority
Oscar Parker 1
Prisha Ahmed 2
Rhea Taylor 3
UPDATE patient_intake SET priority=1 
WHERE name='Prisha Ahmed';

UPDATE patient_intake SET priority=2 
WHERE name='Oscar Parker';
Tranzacții și gestionarea erorilor în PostgreSQL

Rezultate eronate în tabel

patient_intake

name priority
Oscar Parker 1
Prisha Ahmed 1
Rhea Taylor 3
Tranzacții și gestionarea erorilor în PostgreSQL

Utilizarea unei tranzacții

BEGIN;

UPDATE patient_intake SET priority=1 
WHERE name='Prisha Ahmed';

UPDATE patient_intake SET priority=2 
WHERE name='Oscar Parker';

COMMIT;
Tranzacții și gestionarea erorilor în PostgreSQL

Un alt motiv pentru a folosi tranzacții

  • Instrucțiuni multiple care trebuie să reușească sau să eșueze ca grup
  • Gestionarea efectelor operațiunilor concurente asupra instrucțiunilor
Tranzacții și gestionarea erorilor în PostgreSQL

Blocuri de tranzacții

BEGIN TRANSACTION;

UPDATE patient_intake SET priority=1 
WHERE name='Prisha Ahmed';

UPDATE patient_intake SET priority=2 
WHERE name='Oscar Parker';

COMMIT;
Tranzacții și gestionarea erorilor în PostgreSQL

Oricâte instrucțiuni

BEGIN;

UPDATE patient_intake SET priority=2 
WHERE name='Oscar Parker';

UPDATE patient_intake SET priority=1 
WHERE name='Rhea Taylor';

UPDATE patient_intake SET priority=3 
WHERE name='Prisha Ahmed';

COMMIT;
Tranzacții și gestionarea erorilor în PostgreSQL

Să exersăm!

Tranzacții și gestionarea erorilor în PostgreSQL

Preparing Video For Download...