Kettle - 使用 Insert/Update 出现重复键错误

Kettle - Duplicate key error using Insert/Update

我有一个 postgres 数据库,我使用 Pentaho 数据集成 (Kettle) 进行 ETL。

使用具有以下配置的 Insert/Update 框配置数据加载。

但是,我从数据库中收到此错误消息。

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.

我在另一个问题中读到,为了让 insert/update 的盒子正常工作,必须编写重复的密钥。

非常感谢任何帮助。

您在唯一键查找中使用了 <=,这允许获得多个 cardid+updatedate,这是不一致的。

始终为 insert/update 使用 UNIQUE 键。事实上,您已经在使用此约束,但仅在 postgres 端,您必须从 pdi 端遵循相同的约束。查看 table DDL 以查看唯一性约束声明

可能它可以在查找的第二列使用 = 而不是 <= 来解决问题。