Chào mừng đến với Giao dịch và Xử lý lỗi trong PostgreSQL

Giao dịch và Xử lý Lỗi trong PostgreSQL

Jason Myers

Principal Engineer

Mục tiêu học tập và dữ liệu mẫu

  • Duy trì tính toàn vẹn và độ tin cậy dữ liệu với giao dịch
  • Ảnh hưởng của đồng thời đến giao dịch
  • Xử lý lỗi với giao dịch
Giao dịch và Xử lý Lỗi trong PostgreSQL

Động lực dùng giao dịch

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';
Giao dịch và Xử lý Lỗi trong PostgreSQL

Kết quả bảng khi lỗi

patient_intake

name priority
Oscar Parker 1
Prisha Ahmed 1
Rhea Taylor 3
Giao dịch và Xử lý Lỗi trong PostgreSQL

Dùng giao dịch

BEGIN;

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

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

COMMIT;
Giao dịch và Xử lý Lỗi trong PostgreSQL

Lý do khác để dùng giao dịch

  • Nhiều câu lệnh cần thành công hoặc thất bại cùng nhau
  • Xử lý cách câu lệnh bị ảnh hưởng bởi thao tác đồng thời
Giao dịch và Xử lý Lỗi trong PostgreSQL

Khối giao dịch

BEGIN TRANSACTION;

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

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

COMMIT;
Giao dịch và Xử lý Lỗi trong PostgreSQL

Bất kỳ số câu lệnh nào

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;
Giao dịch và Xử lý Lỗi trong PostgreSQL

Ayo berlatih!

Giao dịch và Xử lý Lỗi trong PostgreSQL

Preparing Video For Download...