Skip to content

删除数据节点

删除数据节点用于从指定数据表中删除符合条件的记录,对应常规数据库操作中的 DELETE。节点通过可视化方式配置目标表和删除条件,无需编写 SQL。

每次执行会删除所有命中条件的记录。删除通常难以恢复,必须使用可验证的精确条件,并在执行前确认命中范围;复杂删除、跨表清理或需要事务补偿的场景应重新设计流程。

添加与配置

在节点面板的 数据库 分类中添加 删除数据 节点。属性面板依次提供数据表、删除条件、输出和异常处理配置。

删除数据节点完整配置

截图示例从 daily_expenses 表中删除 id 等于 expense-demo-id 的记录。示例使用唯一 ID,避免把金额、名称等可能重复的字段作为删除范围。

数据表

单击 添加数据表,从资源库数据库中选择目标表。每个删除数据节点只支持操作一张数据表;选中后可以移除并重新选择。

执行前应确认:

  • 数据表属于正确的工作空间和运行环境;
  • 当前执行身份具有删除权限;
  • 表中的业务数据已经满足删除条件;
  • 关联数据、审计要求和保留策略允许删除;
  • 多用户数据隔离、调试数据隔离等能力已在目标环境实际验证。

试运行可能删除真实记录,应使用专门测试表或明确可清理的数据。

删除条件

删除条件决定哪些记录会被移除。每个条件由字段、运算符和值组成,值可以填写固定值,也可以引用开始节点、上游输出或流程变量。

运算符随字段类型变化:

字段类型支持的运算符
字符串等于、不等于、模糊匹配、不模糊匹配、属于、不属于、为空、不为空
整数、数字等于、不等于、大于、小于、大于等于、小于等于、属于、不属于、为空、不为空
时间等于、不等于、大于、小于、大于等于、小于等于、为空、不为空
布尔等于、不等于、为空、不为空、为真、为假

添加多个条件后,可以选择“且”或“或”。删除节点当前以“或”作为多条件的默认关系;“或”会扩大删除范围,增加第二个条件后必须主动核对逻辑关系。

空条件可能造成全表删除

正式流程必须至少添加一个可验证的条件,并在删除前使用相同条件执行查询,确认命中数量和样例记录。

删除条件建议遵循以下优先级:

  1. 优先使用唯一 ID 或业务唯一键;
  2. 多条件删除优先使用“且”缩小范围;
  3. 谨慎使用“不等于”“不属于”“不为空”和模糊匹配;
  4. 不使用未经校验的用户输入直接决定删除范围;
  5. 批量删除必须设置明确的数量阈值和人工确认机制。

输出

删除数据节点提供两个固定输出:

输出类型说明
outputListArray<Object>列表输出;实际是否返回已删除记录及其字段应通过试运行确认
rowNumInteger本次删除影响的记录数量

需要判断删除结果时,优先检查 rowNum。不要假设 outputList 一定包含删除前的完整记录;如果需要留存数据,应在删除前使用查询节点读取并持久化必要字段。

默认输出中未定义 errorBodyisSuccess,异常处理应通过对应分支或运行结果处理。

异常处理

新建节点的默认设置为:

  • 整体执行超时:60 秒;
  • 重试次数:不重试;
  • 异常处理方式:中断流程。

删除属于不可逆或难以恢复的写操作。请求超时不代表数据库一定没有删除成功,不能在没有状态确认和幂等保障时直接重试。

如果业务允许失败后继续,应记录目标条件、预期数量、实际结果和失败原因,并转入人工核对或补偿流程;不要吞掉错误后把删除当作成功。

安全删除流程

正式流程建议按以下顺序设计:

  1. 使用查询节点按完全相同的条件读取目标记录;
  2. 检查命中数量是否处于允许范围;
  3. 保存必须留存的字段、审计信息或备份;
  4. 对高风险批量删除增加人工确认;
  5. 执行删除节点;
  6. 检查 rowNum 是否符合预期;
  7. 再次查询,确认目标记录已不存在;
  8. 数量不符或执行异常时停止后续流程并人工核对。

示例:按唯一 ID 删除测试记录

  1. 选择 daily_expenses 数据表;
  2. 添加删除条件:id 等于 expense-demo-id
  3. 使用查询节点按同一 ID 预览目标记录;
  4. 确认只命中允许删除的测试记录;
  5. 执行删除节点并检查 rowNum
  6. 再次按同一 ID 查询,确认记录不存在。

不要将宽范围条件直接用于真实数据;这类条件可能一次删除大量记录。

常见问题

为什么删除了多条记录?

检查是否遗漏条件、使用了“或”关系,或采用了不等于、不属于、模糊匹配等宽范围运算符。立即停止后续流程,保留运行记录,并根据备份和审计信息评估恢复方案。

为什么没有删除任何记录?

依次核对数据表、运行环境、字段类型、条件值和权限。还要确认目标记录确实存在,并区分字符串 ID、数字 ID 等不同类型。

为什么添加第二个条件后范围反而变大?

删除节点多条件默认使用“或”,只要满足任一条件就会命中。需要同时满足多个条件时,应明确切换为“且”,并在删除前先查询验证。

删除后可以从 outputList 恢复记录吗?

不能依赖。实际返回内容必须通过试运行确认,而且输出不是可靠备份。需要恢复能力时,应在删除前保存必要数据或使用数据库级备份与审计机制。

为什么超时后不能直接重试?

超时只表示调用方没有及时收到结果,删除操作可能已经成功。直接重试可能再次触发下游逻辑或扩大副作用,应先查询目标记录确认状态。

删除数据节点和 SQL 自定义节点怎么选?

单表条件删除优先使用删除数据节点,条件范围更直观。只有可视化配置无法表达操作时才使用 SQL 自定义节点,并加强权限、事务、审计和恢复控制。