检索最后一组插入的行?

时间:2013-12-31 19:01:43

标签: talend

我的问题非常简单,但我搜索得很高,但只是找到了模糊和无效的解决方案。

我正在使用Talend Data Integration。我有一个非常简单的作业设置,它将一组行从Excel文件导入Microsoft SQL数据库。

我的问题是在插入这些新行之后,我需要进一步使用它们,我需要知道它们的主键,因为它们是在插入时由数据库生成的。

我已经尝试了tMSSqlLastInsertId组件但总是返回零。 我试过从数据库中重新选择但是莫名其妙地主键也是零。即使我已经检查过以确保数据库中的条目确实设置了正确的主键。

1 个答案:

答案 0 :(得分:2)

奇怪且明显无法解释的问题。也许是提交/锁定问题?

我的建议是重新选择不同子工作中的行,以强制在tMsqlOutput组件之后提交。对于后续输入阶段,您需要使用与数据库的差异连接,以确保输出阶段中的提交已完成。并且要小心检查输入阶段中的模式(数量,类型,列的顺序:您还有一个 - 自动键)。类似的东西:

[starting component of the subjob]--->row---->[...]-->row--->tMSSqlOutput
         |
         |
    OnSubjobOk
         |
         |
        \ /
         '
     tMSSInput---row--->[...]