水壶 - 使用插入/更新的重复键错误
Posted
技术标签:
【中文标题】水壶 - 使用插入/更新的重复键错误【英文标题】:Kettle - Duplicate key error using Insert/Update 【发布时间】:2019-01-16 15:10:29 【问题描述】:我有一个 postgres 数据库,我使用 Pentaho 数据集成 (Kettle) 进行 ETL。
使用插入/更新框配置数据加载,配置如下。
但是,我从数据库中收到此错误消息。
org.pentaho.di.core.exception.KettleDatabaseException:
Error inserting/updating row
ERROR: duplicate key value violates unique constraint "uk_cardid_cards"
Detail: Key (cardid)=(91c2eb15-75f4-4081-8b51-aebcc2fc0116) already exists.
我在另一个问题中读到,必须组合重复键才能使插入/更新框正确工作。
非常感谢任何帮助。
【问题讨论】:
【参考方案1】:您在唯一键查找中使用了
始终使用 UNIQUE 键进行插入/更新。实际上,您已经在使用此约束,但仅在 postgres 端,您必须遵循 pdi 端的相同约束。查看 DDL 表以查看唯一性约束声明
也许它可以在查找的第二列中使用 = 而不是
【讨论】:
我的印象是插入/更新步骤可能是一个 upsert,但在这种情况下它失败了。唯一性应该在表的 id 上,我的想法是如果日期高于表上的记录,则更新记录。正如你提到的,我必须遵循桌子上的相同键。以上是关于水壶 - 使用插入/更新的重复键错误的主要内容,如果未能解决你的问题,请参考以下文章