我有一个Postgres BDR群集,该群集具有2个节点(多主复制)。 我用自动增量主键创建了一个表,如下所示:
create table t1 (id serial primary key, name text);
我从node1在该表上添加了一些值:
insert into t1(name) values('foo');
现在,当我尝试从node2向该表中添加另一个值时,我收到该错误:
ERROR: duplicate key value violates unique constraint "t1_pkey"
DETAIL: Key (id)=(1) already exists.
答案 0 :(得分:0)
您的问题是,两个数据库都有其自己的序列,这些序列对于数据库而言是本地的,无法复制。这会导致复制冲突。
您可以执行以下操作:
START 1 INCREMENT2
,在另一个数据库中使用START 2 INCREMENT 2
的序列,这样序列值就不会冲突。