『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》

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

相关推荐
这个DBA有点耶8 小时前
2026年分布式数据库有哪些主流选择?先评估这5个维度再决定
数据库·分布式·dba
这个DBA有点耶11 小时前
从MySQL 5.7到8.0:JSON查询性能差在哪?虚拟列索引vs多值索引怎么选
数据库·mysql·架构
胡写代码11 小时前
数据库审计字段,别再每张表各写一套了——我统一成这 6 个字段
数据库
SelectDB15 小时前
为什么 JSON 正在成为分析数据库新的竞争点?
数据库·json·agent
ClouGence16 小时前
开源数据库管理工具 CloudDM 4.2.0 发布,新增 GoldenDB、KingbaseES 等数据源
数据库·dba·devops
发霉的馒头16 小时前
ORA-00845: MEMORY_TARGET not supported on this system的解决方法
数据库
草莓熊Lotso18 小时前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存
煎饼皮皮侠19 小时前
【设计】设计一个web版的数据库管理平台后端(之五) --借鉴mybatis
数据库·mybatis
东风破_1 天前
danci 2:创建的单词书到底存在哪里?从 Supabase 一路理解 ORM、Drizzle 和 RLS
数据库·后端·node.js
九皇叔叔1 天前
《MySQL 体系架构详解:Server 层、SQL 执行流程与 InnoDB、MyISAM、MEMORY 存储引擎》
sql·mysql·架构