如何使用nifi在mysql中获取最后插入的记录

Posted

技术标签:

【中文标题】如何使用nifi在mysql中获取最后插入的记录【英文标题】:How to fetch last inserted record in mysql using nifi 【发布时间】:2019-02-26 09:42:13 【问题描述】:

我正在尝试在 mysql 数据库中插入一条记录,并在使用 nifi 插入成功时获取最后插入的记录。下面是我正在尝试的流程结构。

convertJsontomysql -> putSQL(insert record) -> executeSQL (query to fetch last inserted record)

但它会引发错误,我不知道如何实现这一点,请高人帮忙。

提前致谢

【问题讨论】:

表的结构是什么? 嗨@BenYaakobi,这是一个包含基本字段的简单表,我可以成功插入记录,尝试使用executeSQL 获取最后插入的记录,但如果我单独运行相同的查询,它会引发错误在 executeSQL 中完美运行。 什么是基本字段?是否有自动增量 ID 字段?您要执行的查询是什么? @BenYaakobi 基本字段是 id、name、created_dt、modified_dt 是的 'ID' 是自动递增字段,SELECT 'id','name' FROM table1 WHERE id = (SELECT MAX(id) FROM table1); 上面的查询我试图在 executeSQL 处理器中运行 我已经添加了我的答案:) 【参考方案1】:

尝试运行查询SELECT max(id), name FROM table1。 如果您仍想使用包装器作为名称,请使用 ` 而不是 '(反引号而不是撇号)。

【讨论】:

【参考方案2】:

你确定这会奏效吗?在新记录之间可能已经插入到表中。因此,您可能无法获得相关记录的 ID。

也许更好的解决方案是使用 PutSQL 结束流程并让第二个获取数据?您可以查看here 以获得一些想法。

【讨论】:

以上是关于如何使用nifi在mysql中获取最后插入的记录的主要内容,如果未能解决你的问题,请参考以下文章

我似乎无法从 MySQL 获取最后插入的记录/ID

最后插入的记录未反映在使用 JDBC 的 mysql 中的 select 语句中

MySQL:在没有 auto_increment 的情况下获取最后插入的主键

如何在多条记录插入中获取最后插入的 id?

如何从PHP中的URL获取多个同名参数并将所有记录插入表中

如何在使用 PHP-PDO 记录查询时获取最后一个插入 ID