【问题标题】: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.

我在另一个问题中读到,必须组合重复键才能使插入/更新框正确工作。

非常感谢任何帮助。

【问题讨论】:

    标签: postgresql pentaho kettle


    【解决方案1】:

    您在唯一键查找中使用了

    始终使用 UNIQUE 键进行插入/更新。实际上,您已经在使用此约束,但仅在 postgres 端,您必须遵循 pdi 端的相同约束。查看 DDL 表以查看唯一性约束声明

    也许它可以在查找的第二列中使用 = 而不是

    【讨论】:

    • 我的印象是插入/更新步骤可能是一个 upsert,但在这种情况下它失败了。唯一性应该在表的 id 上,我的想法是如果日期高于表上的记录,则更新记录。正如你提到的,我必须遵循桌子上的相同键。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 2013-08-02
    • 2012-04-21
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多