INSERT INTO sd_files (id,project_id, node_id, file_name, file_path, file_size, upload_time, uploader) VALUES (#{item.id},#{item.projectId}, #{item.nodeId}, #{item.fileName}, #{item.filePath}, #{item.fileSize}, #{item.uploadTime}, #{item.uploader}) UPDATE sd_files a LEFT JOIN sd_nodes b ON b.project_id = a.project_id AND a.file_path = CONCAT( b.custom3, b.node_name, '/' ) SET a.node_id = b.id WHERE b.id IS NOT NULL AND a.project_id = #{id} WITH RECURSIVE node_tree AS ( SELECT id FROM sd_nodes WHERE id = #{nodeId} UNION ALL SELECT n.id FROM sd_nodes n INNER JOIN node_tree t ON n.parent_id = t.id ) DELETE FROM sd_files WHERE node_id IN (SELECT id FROM node_tree)