mirror of
https://github.com/opelly27/WinStudentGoalTracker.git
synced 2026-05-20 11:07:41 +00:00
95 lines
2.6 KiB
SQL
95 lines
2.6 KiB
SQL
-- =====================================================================
|
|
-- Migration: Add short_name column to benchmark table and update
|
|
-- all benchmark stored procedures to support it.
|
|
-- Run in TablePlus against MySQL.
|
|
-- =====================================================================
|
|
|
|
-- 1. Add the column
|
|
ALTER TABLE `benchmark`
|
|
ADD COLUMN `short_name` VARCHAR(50) DEFAULT NULL AFTER `benchmark`;
|
|
|
|
|
|
-- 2. Recreate sp_Benchmark_GetByStudentId
|
|
DROP PROCEDURE IF EXISTS `sp_Benchmark_GetByStudentId`;
|
|
CREATE PROCEDURE `sp_Benchmark_GetByStudentId`(IN p_id_student CHAR(36))
|
|
BEGIN
|
|
SELECT
|
|
s.`identifier` AS `studentIdentifier`,
|
|
b.`id_benchmark` AS `benchmarkId`,
|
|
b.`id_goal` AS `goalId`,
|
|
g.`category` AS `goalCategory`,
|
|
b.`benchmark` AS `benchmark`,
|
|
b.`short_name` AS `shortName`,
|
|
u.`name` AS `createdByName`,
|
|
b.`created_at` AS `createdAt`,
|
|
b.`updated_at` AS `updatedAt`
|
|
FROM `benchmark` b
|
|
INNER JOIN `goal` g ON g.`id_goal` = b.`id_goal`
|
|
INNER JOIN `student` s ON s.`id_student` = g.`id_student`
|
|
LEFT JOIN `user` u ON u.`id_user` = b.`id_user_created`
|
|
WHERE g.`id_student` = p_id_student
|
|
ORDER BY b.`created_at` DESC;
|
|
END;
|
|
|
|
|
|
-- 3. Recreate sp_Benchmark_Insert
|
|
DROP PROCEDURE IF EXISTS `sp_Benchmark_Insert`;
|
|
CREATE PROCEDURE `sp_Benchmark_Insert`(
|
|
IN p_id_benchmark CHAR(36),
|
|
IN p_id_goal CHAR(36),
|
|
IN p_id_user_created CHAR(36),
|
|
IN p_benchmark TEXT,
|
|
IN p_short_name VARCHAR(50)
|
|
)
|
|
BEGIN
|
|
INSERT INTO benchmark
|
|
(
|
|
id_benchmark,
|
|
id_goal,
|
|
id_user_created,
|
|
benchmark,
|
|
short_name,
|
|
created_at,
|
|
updated_at
|
|
)
|
|
VALUES
|
|
(
|
|
p_id_benchmark,
|
|
p_id_goal,
|
|
p_id_user_created,
|
|
p_benchmark,
|
|
p_short_name,
|
|
UTC_TIMESTAMP(),
|
|
NULL
|
|
);
|
|
SELECT
|
|
id_benchmark,
|
|
id_goal,
|
|
id_user_created,
|
|
benchmark,
|
|
short_name,
|
|
created_at,
|
|
updated_at
|
|
FROM benchmark
|
|
WHERE id_benchmark = p_id_benchmark
|
|
LIMIT 1;
|
|
END;
|
|
|
|
|
|
-- 4. Recreate sp_Benchmark_Update
|
|
DROP PROCEDURE IF EXISTS `sp_Benchmark_Update`;
|
|
CREATE PROCEDURE `sp_Benchmark_Update`(
|
|
IN p_id_benchmark CHAR(36),
|
|
IN p_benchmark TEXT,
|
|
IN p_short_name VARCHAR(50)
|
|
)
|
|
BEGIN
|
|
UPDATE benchmark
|
|
SET
|
|
benchmark = p_benchmark,
|
|
short_name = p_short_name,
|
|
updated_at = UTC_TIMESTAMP()
|
|
WHERE id_benchmark = p_id_benchmark;
|
|
SELECT ROW_COUNT() AS rowsAffected;
|
|
END;
|