+ -
当前位置:首页 → 问答吧 → mysql存储过程

mysql存储过程

时间:2011-07-14

来源:互联网

create procedure nickinsert(IN ab INT,IN loop_count INT)
BEGIN
  DECLARE abc INT;
  DECLARE a INT;
  SET abc = 0;
  SET a = 1;
  repeat
  WHILE abc < loop_count DO
  INSERT INTO nick(gmt_create,seller_sid) VALUES( date_sub(current_date,interval abc day),a);
  SET abc = abc + 1;
  END WHILE;
  SET a = a + 1;
  until a > ab  
  END repeat;
  END

 一共ab个人,每个人插入loop_count条数据。
这个存储过程怎么只执行了内层循环啊?

作者: mtv0199   发布时间: 2011-07-14

DELIMITER $$

USE `aa`$$

DROP PROCEDURE IF EXISTS `nickinsert`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `nickinsert`(IN ab INT,loop_count INT)
BEGIN
  DECLARE abc INT;
  DECLARE a INT;
  SET abc = 0;
  SET a = 1;
  REPEAT
  WHILE abc < loop_count DO
  INSERT INTO nick(gmt_create,seller_sid) VALUES( DATE_SUB(CURRENT_DATE,INTERVAL abc DAY),a);
  SET abc = abc + 1;
  END WHILE;
 SET abc = 0;
  SET a = a + 1;
  UNTIL a > ab  
  END REPEAT;
  END$$

DELIMITER ;

作者: WWWWA   发布时间: 2011-07-14

第2次循环要重新赋值
SET abc = 0;

作者: WWWWA   发布时间: 2011-07-14