原因:
表 t_ingestion_pipeline_node 有唯一约束:
UNIQUE (pipeline_id, node_id, deleted)
更新 Pipeline 时,upsertNodes 原先对当前节点做逻辑删除(deleted=0 → 1),再插入新行。
第二次用相同 node_id(如 fetcher-1)更新时,库里已经有一条 (pipeline_id, fetcher-1, deleted=1) 的历史记录,再次把活跃行标成 deleted=1 就会违反唯一约束。
建议修复
IngestionPipelineServiceImpl.upsertNodes() 改为:先物理清空该 Pipeline 下所有节点,再插入新节点。
原因:
表 t_ingestion_pipeline_node 有唯一约束:
UNIQUE (pipeline_id, node_id, deleted)更新 Pipeline 时,upsertNodes 原先对当前节点做逻辑删除(deleted=0 → 1),再插入新行。
第二次用相同 node_id(如 fetcher-1)更新时,库里已经有一条 (pipeline_id, fetcher-1, deleted=1) 的历史记录,再次把活跃行标成 deleted=1 就会违反唯一约束。
建议修复
IngestionPipelineServiceImpl.upsertNodes()改为:先物理清空该 Pipeline 下所有节点,再插入新节点。