generated from Sithas/conan_template
Настроенный запуск
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
DELIMITER $$
|
||||
|
||||
CREATE PROCEDURE `up_and_down`.`fill_treatment_schemes`()
|
||||
BEGIN
|
||||
DECLARE done INT DEFAULT 0;
|
||||
DECLARE v_uts_uuid CHAR(36);
|
||||
DECLARE v_user_uuid CHAR(36);
|
||||
DECLARE v_count INT;
|
||||
DECLARE v_i INT;
|
||||
DECLARE v_med_uuid CHAR(36);
|
||||
|
||||
-- курсор по всем схемам лечения пользователей
|
||||
DECLARE cur CURSOR FOR
|
||||
SELECT uuid, user_uuid
|
||||
FROM `up_and_down`.`user_treatment_schemes`;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
|
||||
|
||||
OPEN cur;
|
||||
|
||||
read_loop: LOOP
|
||||
FETCH cur INTO v_uts_uuid, v_user_uuid;
|
||||
IF done = 1 THEN
|
||||
LEAVE read_loop;
|
||||
END IF;
|
||||
|
||||
-- случайное количество препаратов от 1 до 5
|
||||
SET v_count = FLOOR(RAND() * 5) + 1;
|
||||
SET v_i = 0;
|
||||
|
||||
meds_loop: WHILE v_i < v_count DO
|
||||
-- случайный препарат из уже существующих medications
|
||||
SELECT m.uuid
|
||||
INTO v_med_uuid
|
||||
FROM `up_and_down`.`medications` m
|
||||
ORDER BY RAND()
|
||||
LIMIT 1;
|
||||
|
||||
-- чтобы не было дублей (один и тот же препарат в одной схеме)
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `up_and_down`.`treatment_schemes` ts
|
||||
WHERE ts.user_treatment_schemes_uuid = v_uts_uuid
|
||||
AND ts.medication_uuid = v_med_uuid
|
||||
) THEN
|
||||
INSERT INTO `up_and_down`.`treatment_schemes` (
|
||||
`user_treatment_schemes_uuid`,
|
||||
`medication_uuid`
|
||||
) VALUES (
|
||||
v_uts_uuid,
|
||||
v_med_uuid
|
||||
);
|
||||
SET v_i = v_i + 1;
|
||||
END IF;
|
||||
END WHILE;
|
||||
END LOOP;
|
||||
|
||||
CLOSE cur;
|
||||
END$$
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
CALL `up_and_down`.`fill_treatment_schemes`();
|
||||
Reference in New Issue
Block a user