04.如何在工作流中使用数据库
文章目录
问题: 如何在工作流中使用数据库
👇 点击展开/折叠 面试背诵模板(建议先背这个)
一、前置准备:创建数据库
在工作流中使用数据库节点之前,必须先在一个Bot中创建对应的数据库(数据表)。
创建方式有三种:
- 在资源库中新建数据库
- 在智能体编辑界面点击“+”创建
- 在工作流中新增数据库节点时新建
创建数据表时需定义表名(建议英文、数字、下划线)和字段结构(字段名、数据类型)。Coze数据库本质上是轻量级NoSQL数据库,支持非结构化或半结构化数据存储。
二、数据库节点类型与功能
Coze工作流中数据库相关节点分为五类:
| 节点类型 | 功能说明 |
|---|---|
| 新增数据节点 | 向指定数据表中插入一条新记录 |
| 查询数据节点 | 根据条件从数据表中查询数据,无需编写SQL |
| 更新数据节点 | 更新数据表中符合条件的记录 |
| 删除数据节点 | 删除数据表中符合条件的记录 |
| SQL自定义节点 | 通过编写SQL语句灵活执行任意操作 |
上述四个预设节点本质上是将常用SQL操作封装为可视化配置,降低了操作门槛。一个数据库节点最多操作一张数据表。
三、查询数据节点的配置步骤
查询数据节点是使用最频繁的节点类型,核心配置包括:
① 选择数据表:从已有数据表中选择,或新建数据表。
② 选择查询字段:系统自动列出表的所有字段,可按需选择要返回的字段;不指定则返回全部字段。
③ 设置查询条件:配置筛选条件,指定待查询数据的范围。
④ 设置排序方式与查询上限:控制返回结果的顺序和数量。
四、SQL自定义节点的使用
对于更复杂的操作,可使用SQL自定义节点。关键要点:
- SQL语句中引用变量:使用
{{变量名}}格式引用上游节点输出 - SQL语法限制:兼容SQL92常用语法,但不支持
SELECT *语法和多表JOIN操作 - 返回行数限制:每次执行最多返回100行数据
- 引号规范:SQL语句中必须使用英文单引号,混用双引号会报错
1 | -- 插入数据示例(引用上游变量) |
五、节点输入输出配置
输入参数:节点的输入参数即SQL语句中需要使用的参数,可设置为固定值,也可引用上游节点的输出参数。
输出参数:数据库节点的输出固定为两项:
outputList:SQL执行后返回的数据(字段+数据),可按需定义子项rowNum:返回的行数或受影响的行数
六、调试与测试注意事项
- 测试数据隔离:调试阶段操作的是数据表的测试数据,与真实线上数据完全隔离
- 调试时无法直接使用真实数据:需先在测试环境中插入数据,再进行查询、修改、删除等操作测试
- 正式发布后,节点才会操作真实数据库
七、典型应用场景
| 场景 | 说明 |
|---|---|
| 个性化服务 | 记住用户偏好(如喜欢的小说类型),下次自动推荐 |
| 信息查询 | 查询产品库存、订单状态、历史对话记录 |
| 条件流程控制 | 根据数据库中的任务状态决定下一步操作 |
| 用户状态管理 | 存储用户配置、对话历史,实现跨会话连续性 |
| 动态知识库 | 存储业务数据供智能体实时查询 |
八、总结要点
- 数据库节点让智能体具备持久化记忆能力,实现有状态的对话
- 查询节点可视化配置,适合不熟悉SQL的用户
- SQL节点更灵活,适合复杂查询逻辑
- 调试环境与生产环境数据隔离,安全可控
- 每次查询最多返回100行数据,需注意分页设计
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LGQ的博客!