0

所以,我在这里遇到了同步问题;让我们解释一下情况:

我有一个名为 的表Sendings,它由以下列组成:

id   sending_object_id    type   destinatary

id 是 postgresql 给每个表的自动序列号。发送 object_id 是一个自定义标识符,类型和目的地......对于这个特定问题并不重要。

这是表格如何与数据一起显示的示例:

  id   sending_object_id    type   destinatary
  1          1               1         A7
  2          1               1         B1
  3          2               2         A1
  4          2               2         A2
  5          3               1         B8
  6          4               1         N1

如您所见,同一个“ object_id”可以发送到多个目的地。现在,当两个不同的用户,使用两台不同的计算机,尝试插入一个新的发送时,我的同步问题就出现了。

用户 A引入新的发送信息,DB 引擎SelectMax(sending_object_id)创建一个新的发送对象 ID 用于注册表。

用户 B,同时,引入了一个新的发送,使另一个SelectMax(sending_object_id).

sending_object_id同时插入新数据时如何避免重复的 s ?

提前致谢。

4

2 回答 2

1

您需要在创建新的发送对象 ID 时锁定表,或者,如果您不关心确切的数字是什么,请创建您自己的序列并在其上调用nextval

于 2013-10-29T11:49:55.463 回答
1

我认为需要为此使用序列。它们保证在任何情况下都是独一无二的。

于 2013-10-29T11:50:20.293 回答