一次在多个update
中调用并发transaction
时,PostgreSQL仍然能够维护ACID吗?
例如,如果我这样做
BEGIN
UPDATE post SET like = like + 1
UPDATE post SET like = like + 1
END
同时多次进行,我会看到符合ACID的增量吗?
我正在使用REPEATABLE READ
交易类型。
答案 0 :(得分:0)
是的,将保留ACID:
这两个语句要么成功,要么都不成功( atomicity )。
没有违反约束(一致性)。
事务将相互锁定,报告序列化错误并解决死锁(隔离)。
在COMMIT
之后,只要保留事务日志(耐久性),该事务将在系统崩溃后幸免。