代码之家  ›  专栏  ›  技术社区  ›  mljrg

为什么PostgreSQL会中止这个可序列化的计划?

  •  3
  • mljrg  · 技术社区  · 6 年前

    T1: r1x   w1y  c1
    T2:    w2x   c2
    
    (i.e., T1 reads x, T2 writes x, T1 writes y, T2 commits, and finally, T1 commits)
    

    T1: begin
    T1: set transaction isolation level serializable;
    T2: begin
    T2: set transaction isolation level serializable;
    T2: update variables set value = value + 1 where name = 'x'
    T1: update variables set value = value + 1 where name = 'y'
    T2: commit
    T1: commit
    

    1 回复  |  直到 6 年前
        1
  •  4
  •   Laurenz Albe    6 年前

    全部的 y 在更新过程中。