Files
WinStudentGoalTracker/db/Objects/procedures/sp_Goal_Delete.sql
T
2026-04-10 17:52:52 -07:00

23 lines
782 B
SQL

DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `sp_Goal_Delete`(IN p_id_goal CHAR(36))
BEGIN
-- Remove benchmark/event associations for progress events under this goal
DELETE peb FROM progress_event_benchmark peb
INNER JOIN progress_event pe ON pe.id_progress_event = peb.id_progress_event
WHERE pe.id_goal = p_id_goal;
-- Remove progress events under this goal
DELETE FROM progress_event
WHERE id_goal = p_id_goal;
-- Remove benchmarks under this goal
DELETE FROM benchmark
WHERE id_goal = p_id_goal;
-- Remove child goals (one level)
DELETE FROM goal
WHERE id_goal_parent = p_id_goal;
-- Remove the goal itself
DELETE FROM goal
WHERE id_goal = p_id_goal;
SELECT ROW_COUNT() AS rows_affected;
END;;
DELIMITER ;