首页 > 解决方案 > Postgresql 酸合规性

问题描述

update一次调用多个并发transaction时,PostgreSQL是否仍然能够维护ACID?

例如,如果我这样做

BEGIN
  UPDATE post SET like = like + 1
  UPDATE post SET like = like + 1
END

在同一时间同时进行多次,我会看到符合 ACID 的增量吗?

我正在使用REPEATABLE READ交易类型。

标签: postgresqltransactions

解决方案


是的,ACID 将保持:

  • 要么两个语句都会成功,要么都不成功(原子性)。

  • 不会违反任何约束(一致性)。

  • 事务将相互锁定,报告序列化错误并解决死锁(隔离)。

  • 之后COMMIT,只要保留事务日志(持久性),事务就会在系统崩溃中幸存下来。


推荐阅读