mirror of
https://gitee.com/fit2cloud-feizhiyun/MeterSphere.git
synced 2024-12-05 05:29:29 +08:00
refactor: flyway
This commit is contained in:
parent
08183e425e
commit
af295a9fd8
@ -0,0 +1,58 @@
|
||||
alter table test_case_node add pos double null;
|
||||
|
||||
DROP PROCEDURE IF EXISTS pos_cursor;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE pos_cursor()
|
||||
BEGIN
|
||||
DECLARE projectId VARCHAR(64);
|
||||
DECLARE nodeId VARCHAR(64);
|
||||
DECLARE pos DOUBLE;
|
||||
DECLARE level INT;
|
||||
DECLARE done INT DEFAULT 0;
|
||||
DECLARE cursor1 CURSOR FOR (SELECT DISTINCT project_id
|
||||
FROM test_case_node
|
||||
WHERE pos IS NULL);
|
||||
DECLARE cursor2 CURSOR FOR (select id
|
||||
from test_case_node
|
||||
where project_id = projectId
|
||||
and test_case_node.level = level
|
||||
order by create_time);
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
||||
OPEN cursor1;
|
||||
outer_loop:
|
||||
LOOP
|
||||
FETCH cursor1 INTO projectId;
|
||||
IF done
|
||||
THEN
|
||||
LEAVE outer_loop;
|
||||
END IF;
|
||||
SET level = 1;
|
||||
select max(test_case_node.level) into @max_level from test_case_node where project_id = projectId;
|
||||
while level <= @max_level
|
||||
do
|
||||
set pos = 65536;
|
||||
OPEN cursor2;
|
||||
inner_loop:
|
||||
LOOP
|
||||
FETCH cursor2 INTO nodeId;
|
||||
IF done
|
||||
THEN
|
||||
LEAVE inner_loop;
|
||||
END IF;
|
||||
UPDATE test_case_node
|
||||
SET test_case_node.pos = pos
|
||||
WHERE id = nodeId;
|
||||
SET pos = pos + 65536;
|
||||
END LOOP;
|
||||
SET done = 0;
|
||||
CLOSE cursor2;
|
||||
set level = level + 1;
|
||||
end while;
|
||||
|
||||
END LOOP;
|
||||
CLOSE cursor1;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL pos_cursor();
|
||||
DROP PROCEDURE IF EXISTS pos_cursor;
|
Loading…
Reference in New Issue
Block a user