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

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

相关推荐
原来是猿7 小时前
MySQL 在 Centos 7环境安装
数据库·mysql·centos
路小雨~7 小时前
Milvus 向量数据库的官方文档笔记
数据库·学习·milvus
老衲提灯找美女7 小时前
数据库约束
数据库
卷Java7 小时前
Python字典:键值对、get()方法、defaultdict,附通讯录实战
开发语言·数据库·python
wanhengidc7 小时前
跨境云手机适用于哪些场景
大数据·运维·服务器·数据库·科技·智能手机
Bdygsl7 小时前
MySQL(6)—— 视图
数据库·mysql
oradh8 小时前
数据库入门概述
数据库·oracle·数据库基础·数据库入门
BullSmall8 小时前
一套定制化高级 payload 合集
数据库·安全性测试
zbdx不知名菜鸡8 小时前
postgre sql 数据库查询优化
数据库·postgresql
9稳8 小时前
基于PLC的生产线自动升降机设计
开发语言·网络·数据库·嵌入式硬件·plc