水壶 - 使用插入/更新的重复键错误

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 上,我的想法是如果日期高于表上的记录,则更新记录。正如你提到的,我必须遵循桌子上的相同键。

以上是关于水壶 - 使用插入/更新的重复键错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥插入子文档数组时出现“重复键错误”?

为啥插入子文档数组时出现“重复键错误”?

插入期间:E11000 重复键错误索引

如何使用 PyMongo 在重复键错误后继续插入

MongoDB插入引发重复键错误

Codeigniter:当我插入数据时出现重复键错误,我该如何处理这个错误?