代码之家  ›  专栏  ›  技术社区  ›  Sarvar Nishonboyev

为什么在PostgreSQL中xmin和xmax值是相同的?

  •  1
  • Sarvar Nishonboyev  · 技术社区  · 6 年前

    xmax 旧行中的值将具有 xmin 当我在我的Postgres数据库中的表中检查它时 xmin公司 值相同。这是什么意思?

       xmin   |   xmax   |    id    |     serial     | paid 
    ----------+----------+----------+----------------+------
     54569114 | 54569114 | 11099324 | 76605297311437 | t
     54569111 | 54569111 | 11099323 | 38131108141783 | t
     54569101 | 54569101 | 11099322 | 49399633274146 | t
     54569092 |        0 | 11099321 | 44672543705101 | f
     54569090 | 54569090 | 11099320 | 21324499293647 | t
     54569083 |        0 | 11099319 | 82878160317074 | f
     54569079 | 54569079 | 11099318 | 31091666079121 | t
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Laurenz Albe    6 年前

    xmax 双重功能:用于标记可见性(与 xmin ,但它也用于 row locks .

    因此,如果看到两个值相同的行,则创建该行的事务也会锁定该行。这通常是创建元组的标志 INSERT ... ON CONFLICT .

    this answer my blog post 更多信息。