『n8n』不用写SQL,了解一下内置的Datatable

点赞 + 关注 + 收藏 = 学会了

整理了一个n8n小专栏,有兴趣的工友可以关注一下 👉 《n8n修炼手册》

非技术出身的工友在使用 n8n 时是否会遇到这样的困惑:爬取了一堆数据不知道存哪里,总不能每次都导出到Excel再来回导入?想让多个工作流共用一套数据,却找不到简单的方法?不想折腾MySQL、PostgreSQL这些复杂的外部数据库,也看不懂晦涩的SQL语句?

如果有以上困惑,而且你的数据结构不是那么复杂的话,可以试试 n8n 内置的 Data tables。

我用一个简单的例子介绍一下 Data tables 的用法,顺便讲讲不同格式的字段该如何转换。

我们可以在 Data tables 面板管理各个数据表,点击右上角的"Create data table"创建一个数据表。

我以"员工信息表"作为演示。

点击加号新增 namemarried

name 是"员工姓名",Type 选择 string。

married 是"是否结婚",Type 选择 boolean(这个类型只有"是"和"否"两个选项)。

创建一个工作流,添加要给表单节点。

只有2个字段,表单的"姓名"对应数据表里的 name;表单的"是否结婚"对应数据表里的 married

但是,数据表的 married 的类型是布尔型,也就是 true 表示已结婚,false 表示未结婚。但表单的"是否结婚"的选项却是字符串的"已结"和"未结"。这里要做一下转换。

在表单节点后面添加一个「Insert row」节点,搜 table 就能找到它。

给「Insert row」节点做以下配置。

「From list」选择刚刚创建的"员工信息"表。

「Values to insert」填入 namemarried 这两个字段。

name 这项填入 {``{ $json['姓名'] }} 比较好理解,我不讲解了。

married 这项填入 {``{ $json['是否结婚'] === '已结' ? true : false }},这是 JS 的三元运算符,判断上一个节点传入的"是否结婚"这项的值是否为"已结",如果是的话就存入 true ,否则存入 false

测试一下整个工作流。

我提交了2次表单:

  • 雷猴,已结
  • 鲨鱼辣椒,未结

来到数据表就能看到这两项了。

鲨鱼辣椒突然说他今天要结婚了,作为 HR 也应该更新一下数据。

此时再提交一次表单:鲨鱼辣椒,已结。你会发现工作流又多了一条数据,这并不是我们想要的结果。

在 Data tables 里先手动删除第3项。

回到工作流这边,新增了一些节点。

  • 上面那条:
    • 「If row exists」:如果传入的"姓名"已在数据表里,就走这条。
    • 「Update row(s)」:更新表中的数据。
  • 下面那条:
    • 「If row does not exist」:如果传入的"姓名"不在数据表里,就走这条。
    • 「Insert row」:新增一条数据。

「If row exists」和「If row does not exist」的判断条件都是一样的,如下图所示。只不过这两个节点的功能不同而已。

在来看「Update row(s)」这个节点,通过 name 这个字段找到要修改的那行数据,找到后就修改 married 这列的值。

「Insert row」节点的配置不需要改变。

试试~

提交一项:鲨鱼辣椒,已婚

回到数据表这边就能看到鲨鱼辣椒的婚姻状态变成"true"了。

再提交一项:蝎子莱莱,未婚。

由于"蝎子莱莱"不在数据表里,所以走的是"新增"路线。


以上就是本文的全部内容啦,想了解更多n8n玩法欢迎关注《n8n修炼手册》👏

如果你有 NAS,我非常建议你在 NAS 上部署一套 n8n,搞搞副业也好,帮你完成工作任务也好 《『NAS』不止娱乐,NAS也是生产力,在绿联部署AI工作流工具-n8n》

点赞 + 关注 + 收藏 = 学会了

相关推荐
先吃饱再说9 小时前
存储的进化:从 MySQL 到浏览器缓存,数据到底住在哪?
数据库
Nturmoils9 小时前
字段太多看不全,ksql 的展开模式和输出控制怎么用
数据库·后端
Databend12 小时前
Agent 轨迹分析与归因的数据工程实践
大数据·数据库·agent
这个DBA有点耶12 小时前
SQL改写进阶:标量子查询的“隐形代价”与消除实战
数据库·mysql·架构
smallyoung13 小时前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·mysql·postgresql
parade岁月13 小时前
MySQL JOIN解析:朴实无华但食之有味
数据库·后端
用户31693538118314 小时前
MySQL服务无法启动问题解决全记录
数据库
vivo互联网技术17 小时前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页
倔强的石头_1 天前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库
SelectDB1 天前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python