Welcome to Transactions and Error Handling in PostgreSQL

Transactions and Error Handling in PostgreSQL

Jason Myers

Principal Engineer

Learning objectives and datasets

  • Maintain data integrity and credibility with transaction
  • Concurrency's effects on transactions
  • Error Handling with transactions
Transactions and Error Handling in PostgreSQL

Motivation for using transactions

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';
Transactions and Error Handling in PostgreSQL

Errored table results

patient_intake

name priority
Oscar Parker 1
Prisha Ahmed 1
Rhea Taylor 3
Transactions and Error Handling in PostgreSQL

Using a transaction

BEGIN;

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

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

COMMIT;
Transactions and Error Handling in PostgreSQL

Another reason to use transactions

  • Multiple statements that should succeed or fail as a group
  • Handling how statements are affected by concurrent operations
Transactions and Error Handling in PostgreSQL

Transaction blocks

BEGIN TRANSACTION;

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

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

COMMIT;
Transactions and Error Handling in PostgreSQL

Any number of statements

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;
Transactions and Error Handling in PostgreSQL

Let's practice!

Transactions and Error Handling in PostgreSQL

Preparing Video For Download...