欢迎学习 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...