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

29 lines
995 B
SQL

DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `sp_Student_Delete`(IN p_id_student CHAR(36))
BEGIN
-- Remove progress-event/benchmark associations
DELETE peb FROM progress_event_benchmark peb
INNER JOIN progress_event pe ON pe.id_progress_event = peb.id_progress_event
INNER JOIN goal g ON g.id_goal = pe.id_goal
WHERE g.id_student = p_id_student;
-- Remove progress events
DELETE pe FROM progress_event pe
INNER JOIN goal g ON g.id_goal = pe.id_goal
WHERE g.id_student = p_id_student;
-- Remove benchmarks
DELETE b FROM benchmark b
INNER JOIN goal g ON g.id_goal = b.id_goal
WHERE g.id_student = p_id_student;
-- Remove goals
DELETE FROM goal
WHERE id_student = p_id_student;
-- Remove user-student associations
DELETE FROM user_student
WHERE id_student = p_id_student;
-- Remove the student
DELETE FROM student
WHERE id_student = p_id_student;
SELECT ROW_COUNT() AS rows_affected;
END;;
DELIMITER ;