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)