gpt4 book ai didi

postgresql - Postgres - BDR 复制 - auto_increment 主键的问题

转载 作者:行者123 更新时间:2023-11-29 13:11:06 27 4
gpt4 key购买 nike

我有一个 Postgres BDR 集群,它有 2 个节点(多主复制)。我创建了一个具有自动递增主键的表,如下所示:

create table t1 (id serial primary key, name text);

我在节点 1 的那个表上添加了一些值:

insert into t1(name) values('foo');

现在,当我尝试从 node2 向该表中添加另一个值时,我收到该错误:

ERROR:  duplicate key value violates unique constraint "t1_pkey"
DETAIL: Key (id)=(1) already exists.

最佳答案

你的问题是两个数据库都有自己的序列,这些序列是数据库本地的,没有被复制。这会导致复制冲突。

您可以执行以下操作:

  • 使用 BDR 专有的全局序列
  • 在一个数据库中使用带有 START 1 INCREMENT2 的序列,在另一个数据库中使用带有 START 2 INCREMENT 2 的序列,这样序列值就不会发生冲突。
  • 使用全局唯一的 UUID。

关于postgresql - Postgres - BDR 复制 - auto_increment 主键的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54646641/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com