据我所知,PostgreSQL使用MVCC来处理并行事务,但我不知道在以下情况下会发生什么:Postgresql事务“COMMIT”线程安全吗?
Client1 Client2 Time
-------------------------------------------------------------------
BEGIN BEGIN time=t0
Update row where id=1 Update row where id=1 time=t1
COMMIT COMMIT time=t2
无论是客户端将在时间启动事务= T0,更新同一行ID为= 1,并且将在时间= t2提交事务。由于提交是在同一时间完成的(时间= t2),它们将被并行执行还是由PostgreSQL按顺序执行?如果它们并行运行,是否有数据损坏的可能性?谢谢。
编辑:“COMMIT”与libPQ一起使用。在psql中,COMMIT = END。
这两个更新不可能同时发生**。第二个更新将等到第一个提交(或回滚) –
谢谢。我对并发事务的很多场景感到困惑。非常感谢你纠正我。我从你的评论中得到了答案。 – Saurabh