據我所知,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