自动化测试过程中需要把ne_attribute表格进行初始化,开始的想法是在存储过程中编写两个while循环,但运行结果和预期的不符,后来把两个循环拆分成两个存储过程中,用外存储过程调用内存储过程,结果OK,以下代码可参考。
/* Procedure structure for procedure `inner_loop` */
/*!50003 DROP PROCEDURE IF EXISTS `inner_loop` */;
DELIMITER $$
/*!50003 CREATE DEFINER=`root`@`%` PROCEDURE `inner_loop`(in i int)
BEGIN
DECLARE j INT;
SET j = 31;
WHILE j <= 50 DO
INSERT INTO ne_attribute(ne_commu_type,manager_program,commu_ne,management_block_num,ne_num) VALUES ('普通网元','',CONCAT(i,',1'),i,j);
SET j = j + 1;
END WHILE;
END */$$
DELIMITER ;
/* Procedure structure for procedure `insert_data` */
/*!50003 DROP PROCEDURE IF EXISTS `insert_data` */;
DELIMITER $$
/*!50003 CREATE DEFINER=`root`@`%` PROCEDURE `insert_data`()
BEGIN
DECLARE i INT;
SET i = 1;
WHILE i <=127 DO
Call inner_loop(i);
set i = i + 1;
END WHILE;
END */$$
DELIMITER ;
SELECT * FROM ne_attribute;
TRUNCATE TABLE ne_attribute;