首页 > 解决方案 > Postgres中数组字段的并发更新

问题描述

我有一个可以从多个工作人员更新的数组,如下所示UPDATE my_table SET arr = array_append(my_table.arr, element)

当两个工作人员尝试同时更新数组时,就会出现问题。例如,两个工人都看到在更新的那一刻,数组是空的,并尝试按如下方式附加一个array_append(empty_arr, element_a)元素array_append(empty_arr, element_b):最后,数组的最终内容将是:arr[element_a]或者arr[element_b]因为其中一个工作人员将更早完成对数组的更新,并且它的值将被另一个工作人员的值覆盖。如何确保两个值都写入数组:arr[element_a, element_b]

标签: arrayspostgresqlconcurrency

解决方案


推荐阅读