在阅读了SymmetricDS用户指南之后,我不确定SymmetricDS是否支持冲突解决,这不是基于PK,而是完全基于我自己的自定义列。
考虑到以下情况:
双向更新的2个节点
每个节点都有一个必须同步的表
现在,表架构如下所示(简化):

id (pk) |  name (char)  | reference (char)

我想知道的是,是否可以将列products定义为冲突解决和插入/更新操作的标识符,而不是pk列reference
例子:
Node0
id (pk) |  name (char)  | reference (char)
1          Foo            IN001
2          FooBaz         IN003
----

Node1
id (pk) |  name (char)  | reference (char)
1          Bar            EX001
2          Foo            IN001

在Node0/1中创建新记录时,Node1中第2行的更改将触发对Node1中第1行的更新将触发在相应节点中的插入,但考虑到可能已经进行了PK。
此外,我想根据columnid的值筛选要同步的表行。这意味着只有行应该同步到reference的位置。
谢谢!

最佳答案

查看触发器表上的“SYNC_KEY_NAMES”列。
指定应用作
同步操作的密钥。默认情况下,如果未指定,则
将使用表的主键。
如果将值“name”插入此列,SDS将把它作为PK处理。
将id保留为PK会造成障碍。如果此列自动递增,则可以尝试在触发器表列“EXCLUDED_column_NAMES”中排除它。因为这是PK,我不知道SDS是否会忽略它。
如果不起作用,则必须编写Custom Load Filter以在插入时增加id字段。

关于postgresql - SymmetricDS pk替代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30219330/

10-15 18:39