[SymmetricDS]:来自源的多行仅向目标写入一行

Posted

技术标签:

【中文标题】[SymmetricDS]:来自源的多行仅向目标写入一行【英文标题】:[SymmetricDS]: Multiple row from source write only one row to target 【发布时间】:2018-05-21 07:12:02 【问题描述】:

我有一张表,其中有多条记录带有 PK ID,EffectiveDate。发送到目标时,我只需要最新的记录。我在目标中的 PK 只有 ID。我怎样才能做到这一点?

来源

ID 生效日期

P1 2018-01-01

P1 2018-02-01

目标

ID 生效日期

P1 2018-02-01(最新)

【问题讨论】:

【参考方案1】:

如果两行 ID 值相同,那么我会将该列声明为目标数据库的主键,并让后续插入语句回退以使用最新值覆盖生效日期列。

【讨论】:

但在源代码中我希望 EffectiveDate 也作为 PK,这样我就可以插入多条记录 不要更改源数据库中的任何内容。仅将 ID 声明为目标数据库的主键。 我在源的 PK 是 (ID, EffectiveDate),在目标的 PK 是 (ID) 如果我插入具有相同 ID 的第二行,它不允许我在目标更新。我已经使用了变换 Update_first = 1 在 dbo.Test 上执行 INSERT 时检测到冲突。主键数据为:ID=P1, EffectiveDate=2018-01-01 00:00:00.000。回退失败。原始错误消息是:违反主键约束“PK_Test”。无法在对象“dbo.Test”中插入重复键。重复键值为 (P1)。 我认为 Update_first 足以解决错误..以前的不工作是因为我混淆了源节点和目标节点......

以上是关于[SymmetricDS]:来自源的多行仅向目标写入一行的主要内容,如果未能解决你的问题,请参考以下文章

SymmetricDS:保持单独的自动增量计数器

IBM Worklight - 仅向订阅用户推送通知

Cocoapods podfile 目标仅向测试添加框架

处理来自多行的日期

SymmetricDS 多节点组复制

SymmetricDS 完全配置安装手册