问题: 如何在工作流中使用数据库

👇 点击展开/折叠 面试背诵模板(建议先背这个) 在工作流中使用数据库的核心是通过“数据库节点”对结构化数据进行持久化存储和增删改查操作。使用前需在Bot中预先创建数据表(数据集),定义字段结构。工作流中添加数据库节点后,可选择“新增数据”、“查询数据”、“更新数据”、“删除数据”等预设操作,或使用更灵活的“SQL自定义节点”执行兼容SQL92的语句。查询节点无需编写SQL,通过可视化配置数据表、查询字段、查询条件即可操作;SQL节点则需编写语句并引用上游变量(格式为)。调试阶段操作的是隔离的测试数据,不会影响真实线上数据。
---

一、前置准备:创建数据库

在工作流中使用数据库节点之前,必须先在一个Bot中创建对应的数据库(数据表)。

创建方式有三种:

  1. 在资源库中新建数据库
  2. 在智能体编辑界面点击“+”创建
  3. 在工作流中新增数据库节点时新建

创建数据表时需定义表名(建议英文、数字、下划线)和字段结构(字段名、数据类型)。Coze数据库本质上是轻量级NoSQL数据库,支持非结构化或半结构化数据存储。

二、数据库节点类型与功能

Coze工作流中数据库相关节点分为五类:

节点类型 功能说明
新增数据节点 向指定数据表中插入一条新记录
查询数据节点 根据条件从数据表中查询数据,无需编写SQL
更新数据节点 更新数据表中符合条件的记录
删除数据节点 删除数据表中符合条件的记录
SQL自定义节点 通过编写SQL语句灵活执行任意操作

上述四个预设节点本质上是将常用SQL操作封装为可视化配置,降低了操作门槛。一个数据库节点最多操作一张数据表。

三、查询数据节点的配置步骤

查询数据节点是使用最频繁的节点类型,核心配置包括:

① 选择数据表:从已有数据表中选择,或新建数据表。

② 选择查询字段:系统自动列出表的所有字段,可按需选择要返回的字段;不指定则返回全部字段。

③ 设置查询条件:配置筛选条件,指定待查询数据的范围。

④ 设置排序方式与查询上限:控制返回结果的顺序和数量。

四、SQL自定义节点的使用

对于更复杂的操作,可使用SQL自定义节点。关键要点:

  • SQL语句中引用变量:使用 {{变量名}} 格式引用上游节点输出
  • SQL语法限制:兼容SQL92常用语法,但不支持 SELECT * 语法和多表JOIN操作
  • 返回行数限制:每次执行最多返回100行数据
  • 引号规范:SQL语句中必须使用英文单引号,混用双引号会报错
1
2
3
4
-- 插入数据示例(引用上游变量)
INSERT INTO book_notes (name, section, note)
VALUES ('{{name}}', '{{section}}', '{{note}}')

五、节点输入输出配置

输入参数:节点的输入参数即SQL语句中需要使用的参数,可设置为固定值,也可引用上游节点的输出参数。

输出参数:数据库节点的输出固定为两项:

  • outputList:SQL执行后返回的数据(字段+数据),可按需定义子项
  • rowNum:返回的行数或受影响的行数

六、调试与测试注意事项

  • 测试数据隔离:调试阶段操作的是数据表的测试数据,与真实线上数据完全隔离
  • 调试时无法直接使用真实数据:需先在测试环境中插入数据,再进行查询、修改、删除等操作测试
  • 正式发布后,节点才会操作真实数据库

七、典型应用场景

场景 说明
个性化服务 记住用户偏好(如喜欢的小说类型),下次自动推荐
信息查询 查询产品库存、订单状态、历史对话记录
条件流程控制 根据数据库中的任务状态决定下一步操作
用户状态管理 存储用户配置、对话历史,实现跨会话连续性
动态知识库 存储业务数据供智能体实时查询

八、总结要点

  • 数据库节点让智能体具备持久化记忆能力,实现有状态的对话
  • 查询节点可视化配置,适合不熟悉SQL的用户
  • SQL节点更灵活,适合复杂查询逻辑
  • 调试环境与生产环境数据隔离,安全可控
  • 每次查询最多返回100行数据,需注意分页设计