Вітаємо у Transactions and Error Handling в PostgreSQL

Транзакції та обробка помилок у PostgreSQL

Jason Myers

Principal Engineer

Навчальні цілі та набори даних

  • Підтримуйте цілісність і надійність даних за допомогою транзакцій
  • Вплив паралельності на транзакції
  • Обробка помилок у транзакціях
Транзакції та обробка помилок у PostgreSQL

Навіщо використовувати транзакції

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';
Транзакції та обробка помилок у PostgreSQL

Помилкові результати таблиці

patient_intake

name priority
Oscar Parker 1
Prisha Ahmed 1
Rhea Taylor 3
Транзакції та обробка помилок у PostgreSQL

Використання транзакції

BEGIN;

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

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

COMMIT;
Транзакції та обробка помилок у PostgreSQL

Ще одна причина використовувати транзакції

  • Кілька операторів мають успішно виконатися або відкотитися разом
  • Як оператори залежать від паралельних дій
Транзакції та обробка помилок у PostgreSQL

Блоки транзакцій

BEGIN TRANSACTION;

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

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

COMMIT;
Транзакції та обробка помилок у PostgreSQL

Будь-яка кількість операторів

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;
Транзакції та обробка помилок у PostgreSQL

Давайте потренуємось!

Транзакції та обробка помилок у PostgreSQL

Preparing Video For Download...