Välkommen till transaktioner och felhantering i PostgreSQL

Transaktioner och felhantering i PostgreSQL

Jason Myers

Principal Engineer

Lärandemål och datamängder

  • Bevara dataintegritet med transaktioner
  • Samtidighetens effekter på transaktioner
  • Felhantering med transaktioner
Transaktioner och felhantering i PostgreSQL

Motivering till att använda transaktioner

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

Felaktigt tabellresultat

patient_intake

name priority
Oscar Parker 1
Prisha Ahmed 1
Rhea Taylor 3
Transaktioner och felhantering i PostgreSQL

Använda en transaktion

BEGIN;

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

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

COMMIT;
Transaktioner och felhantering i PostgreSQL

Ytterligare en anledning att använda transaktioner

  • Flera satser som ska lyckas eller misslyckas som en enhet
  • Hantering av hur satser påverkas av samtidiga operationer
Transaktioner och felhantering i PostgreSQL

Transaktionsblock

BEGIN TRANSACTION;

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

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

COMMIT;
Transaktioner och felhantering i PostgreSQL

Valfritt antal satser

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

Nu kör vi en övning!

Transaktioner och felhantering i PostgreSQL

Preparing Video For Download...