繁体   English   中英

Postgresql锁定多个用户的共享表

[英]Postgresql lock shared table with multiple users

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

我有一个名为Sendings的表,它包含以下列:

id   sending_object_id    type   destinatary

id是postgresql为每个表提供的自动序列ID。 发送object_id是一个自定义标识符,type和destinatary ...对于这个特定问题并不重要。

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

  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 ”发送到多个destinataries。 现在我的同步问题出现在两个不同的用户(有两台不同的计算机)尝试插入新的发送时

用户A引入新的发送信息,数据库引擎生成SelectMax(sending_object_id)以便为注册表创建新的sending_object_id。

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

在插入新数据的同时,如何避免重复sending_object_id

提前致谢。

您需要在创建新的sending_object_id时锁定表,或者,如果您不确切地知道数字是什么,请创建自己的序列并在其上调用nextval

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM