隔离级别、保存点与回滚

PostgreSQL 中的事务与错误处理

Jason Myers

Instructor

隔离级别

隔离级别 脏读 不可重复读 幻读 串行化异常
Read Uncommitted 受保护(PostgreSQL) 易受影响 易受影响 易受影响
Read Committed 受保护 易受影响 易受影响 易受影响
Repeatable Read 受保护 受保护 受保护(PostgreSQL) 易受影响
Serializable 受保护 受保护 受保护 受保护
PostgreSQL 中的事务与错误处理

Repeatable Read

  • SERIALIZABLE

    • 对所有已提交事务仿真串行执行。
  • REPEATABLE READ

    • 可见数据:
      • 事务开始前已提交的数据
      • 本事务先前语句的结果
    • 不可见并发事务提交的任何更改。
PostgreSQL 中的事务与错误处理

可视化 REPEATABLE READ

REPEATABLE READ 图示

PostgreSQL 中的事务与错误处理

可视化 REPEATABLE READ

REPEATABLE READ 图示

PostgreSQL 中的事务与错误处理

可视化 REPEATABLE READ

REPEATABLE READ 图示

PostgreSQL 中的事务与错误处理

REPEATABLE READ

START TRANSACTION ISOLATION LEVEL REPEATABLE READ;

UPDATE inventory SET quantity = quantity - 4 WHERE name = 'macaron'; SAVEPOINT first;
UPDATE inventory SET quantity = quantity - 12 SAVEPOINT second; COMMIT;
PostgreSQL 中的事务与错误处理

Passons à la pratique !

PostgreSQL 中的事务与错误处理

Preparing Video For Download...