【问题标题】:Update or Insert into postgres table without any primary key在没有任何主键的情况下更新或插入 postgres 表
【发布时间】:2017-01-17 16:44:51
【问题描述】:

我有一张表,需要使用 ETL 工具 talend 从 Oracle 源摄取到格陵兰目标。该表很大,因此我们希望每天增量加载数据。该表没有任何主键或唯一键。

表有日期列,我能够从上次更新日期获取插入/更新的记录,但要插入该数据,我们需要一个主键。

关于如何在不使用主键的情况下加载数据的任何解决方案?

【问题讨论】:

  • 发布数据和代码。
  • 我不依赖 JDBC 来执行此操作,而是创建一个阶段表,将增量放在那里,编写 2 个语句(删除 + 插入)并在事务中运行它们。正如其他人提到的,您必须定义一个键。
  • @Balazs Gunics 在什么基础上我可以删除记录?能给我举个例子吗。由于没有密钥,我不确定如何构建删除语句
  • 你需要一把钥匙。时期。但是一旦你有了删除 + 插入,就可以代替删除、更新、插入。

标签: oracle postgresql talend


【解决方案1】:

您需要在插入目标表的组件架构中定义 talend 中的键,如下所示:

您可以使用此密钥更新您的表格,在同一组件的高级设置中,激活复选框use fields optins 并选择您的密钥:

这已针对没有主键的 Oracle 表进行了测试并且工作正常,它应该适合您。

【讨论】:

    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 2019-01-27
    • 2021-12-24
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多