AI 助手
扣子 AI 帮助与支持
你好,我是 扣子 文档问答助手 🎉 你在阅读当前文档的过程中,无论对文档概念的解释,还是文档内容方面的疑问,都可以随时向我提问,我会全力为你解答
推荐问题
扣子 3.0 都有什么新特性?
扣子和扣子编程有什么区别?
扣子如何收费?
Feedback
低代码项目
动态
快速开始
智能体
应用
资源
发布
模型
多人协作
开发工具
推广与变现

SQL 自定义节点

低代码工作流中的 SQL 自定义节点用于对指定数据库进行常见的 SQL 操作。

注意

数据库节点已更名为 SQL 自定义节点。

节点说明

SQL 自定义节点可以连接智能体或应用中指定的数据库,对数据库进行新增、查询、编辑、删除等常见操作,实现动态的数据管理。SQL 自定义节点需要指定待操作的数据库表和对应的 SQL 语句,支持通过自然语言智能生成 SQL 语句。

注意

  • 开发调试阶段不会改动数据库原表,在调试区查看到的是测试数据,和数据库中的真实数据是隔离的。
  • 在低代码工作流中调试 SQL 自定义节点时,不能使用库数据表中的真实数据,需要先插入数据后再进行查、删、改等操作的测试。

低代码工作流还支持通过图形化方式进行数据的增、删、改、查操作,当你不熟悉 SQL 语句时,可使用以下节点操作数据库。

配置 SQL 自定义节点

输入

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

数据表

在数据表区域,你需要根据页面提示添加需要操作的数据表,每个 SQL 自定义节点仅支持操作一张数据表。
在调试期间,SQL 自定义节点显示和使用的是数据表的测试数据,而非数据库中的真实线上数据。单击数据表或单击查看数据,弹出数据表的详情页,可查看此数据表的测试数据。你可以手动添加或修改测试数据,也可以试运行 SQL 自定义节点,通过 SQL 语句插入或修改数据。
Image

SQL

在 SQL 区域输入需要对数据表执行的 SQL 操作,兼容 SQL92 的常用语法。SQL 语句中可以引用SQL 自定义节点输入参数中定义的变量,引用格式为 {{变量名}}

注意

每个 SQL 自定义节点中仅支持添加一条 SQL 语句。

你可以自行编写 SQL 语句,也可以根据页面提示由 AI 帮你生成一段 SQL 语句。单击自动生成,并在弹出的页面中使用自然语言描述要执行的操作,单击自动生成生成 SQL 语句,确认无误后单击使用Use
Image

输出

SQL 自定义节点的输出参数是 SQL 执行后的输出内容,固定为以下四项:

  • outputList:SQL 执行后数据表中的字段和数据。你可以按需新增子项,注意变量名需与 SQL 中定义的字段名一致、数据类型需要和数据表中定义的数据类型一致。
  • rowNum:执行新增、删除、更新操作时受影响的行数,执行查询操作时值固定为 0。
  • errorBody:节点执行失败时的详细信息,包括 errorMessage 和 errorCode。
  • isSuccess:节点执行状态,true 表示执行成功,false 表示执行失败。

其中isSuccesserrorBody 仅在节点的异常处理方式设置为返回设定内容执行异常流程时返回,用于节点执行异常时传递详细信息。

异常处理

默认情况下,节点运行超时、运行异常时,工作流会中断,工作流调试界面或 API 中会返回错误信息。你也可以手动设置节点运行超时等异常情况下的处理方式,例如超时时间、是否重试、是否跳转异常分支等。

异常处理设置

说明

超时时间

超时时间指节点运行的最大耗时,如果超过此时长,则判断为节点运行超时。
默认情况下,节点的超时时间默认为 60s,即 1 分钟。你也可以将其改为 0.1s~60s,灵活控制超时时间。

重试次数

节点运行超时或异常时,默认不重试,你也可以设置为重试 1 次。

异常处理方式

节点运行超时或异常时,默认中断工作流。你也可以手动修改此节点的异常处理方式:

  • 中断流程:工作流执行中断,不再运行后续节点。
  • 返回设定内容:发生异常后,工作流运行不会中断。开发者可自定义设置需要返回的输出字段内容,必须是输出中已定义的字段,且格式为合法的 JSON 格式。另外,节点还会返回输出参数 isSuccesserrorBody,传递节点异常的详细信息。
  • 执行异常流程:发生异常后,工作流运行不会中断,转而执行异常流程分析,开发者需要为新增的异常分支配置处理流程。异常信息会通过节点的输出参数 isSuccesserrorBody 返回。

Image

示例

你可以在工作流中添加大模型节点和 SQL 自定义节点,实现动态生成 SQL 语句并对数据库执行 SQL 操作。例如在工作流中添加大模型节点,设定其角色为专业的 SQL 语句生成助手,然后在 SQL 自定义节点中,引用大模型生成的 SQL 语句。当你输入自然语言描述的数据库操作需求(获取 reading_notes 数据表中的所有数据)时,大模型节点会迅速将其精准转换为纯 SQL 语句 SELECT * FROM reading_notes;,SQL 自定义节点则会根据该语句执行相应的数据库操作。
Image

节点类型

说明

示例

开始

工作流的起始节点,添加变量 input,变量类型为 String

Image

大模型

添加大模型节点,用于将自然语言描述的数据库操作转换为 SQL 语句。

  • 输入:添加 input,其值需引用开始节点的 input 变量。
  • 系统提示词:添加大模型提示词,需指定将自然语言描述的数据库操作转换为 SQL 语句,并确保返回结果仅包含 SQL 语句,无其他描述信息。
  • 用户提示词:设置为 {{input}}
  • 输出:添加 output,变量类型为 String

Image

SQL 自定义

添加 SQL 自定义节点,执行数据库操作。

  • 输入:添加 input,其值需引用大模型节点的 output 变量。
  • 数据表:添加需要执行操作的数据表。
  • SQL:设置为 {{input}}
  • 输出:固定为 outputListrowNum

Image

结束

工作流的结束节点,添加变量 output,引用 SQL 自定义节点的outputList 参数,即输出 SQL 的执行结果。

Image

常见问题

为什么调试 SQL 自定义节点的结果和线上效果不一致?

调试工作流时,SQL 自定义节点使用的是临时的测试数据,线上执行工作流时使用的是数据库中的真实数据,所以统计查询的结果会有差异。

为什么 GROUP_CONCAT 的结果会被截断?

GROUP_CONCAT 是 MySQL 中的一个聚合函数,用于将多行数据连接成一行字符串。MySQL 对该函数的输出长度有一个默认的限制,这个限制由系统变量 group_concat_max_len 控制,在扣子编程中,这个限制为 1024 字节且不可调整。如果 GROUP_CONCAT 合并后的结果超过这个长度,会自动截断超出部分。
不建议在 SQL 节点中处理类似的拼接、计算逻辑,你可以选择用 SQL 节点查询数据,再通过代码节点去拼接最终结果。