检索最后一组插入的行?

问题描述 投票:0回答:1

我的问题很简单,但我到处搜索,但只找到模糊且无效的解决方案。

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

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

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

talend
1个回答
2
投票

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

我的建议是重新选择不同子作业中的行,以在 tMsqlOutput 组件之后强制提交。当然,您需要在后续输入阶段使用不同的数据库连接,以确保输出阶段的提交顺利完成。并小心检查输入阶段中的架构(列的数量、类型、顺序:您还会有一个 - 自动键)。比如:

[starting component of the subjob]--->row---->[...]-->row--->tMSSqlOutput
         |
         |
    OnSubjobOk
         |
         |
        \ /
         '
     tMSSInput---row--->[...]
© www.soinside.com 2019 - 2024. All rights reserved.