如何使用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中获取最后插入的记录的主要内容,如果未能解决你的问题,请参考以下文章
最后插入的记录未反映在使用 JDBC 的 mysql 中的 select 语句中