变量作为值存入mysql存储过程

时间:2013-04-22 19:42:12

标签: mysql stored-procedures

我正在创建一个while循环,直到30,我想将x作为值放入查询中。我不能运行它,因为我不能使用x作为值。我怎样才能做到这一点 ? 我想用x作为小时id。 感谢

CREATE DEFINER=`root`@`localhost` PROCEDURE `add_day`(IN `d_id` INT, IN `date` VARCHAR(64))
BEGIN
      DECLARE x  INT;
      SET x = 1;
      WHILE x  <= 30 DO

INSERT INTO  `e-heal`.`scheduler` (`scheduler_id` ,`d_id` ,`hour_id` ,`date` ,`available`)
VALUES (NULL ,  '5',  x,  '2013-04-22',  '0');

                  SET  x = x + 1; 
      END WHILE;
 END

1 个答案:

答案 0 :(得分:0)

它对我有用。您可以尝试在@前面添加x

DROP PROCEDURE `add_day`;

DELIMITER $$

CREATE DEFINER=`root`@`localhost` 
       PROCEDURE `add_day`(IN `d_id` INT, IN `date` VARCHAR(64))
BEGIN
      DECLARE x  INT;
      SET @x = 1;
      WHILE @x  <= 30 DO
          INSERT INTO  `e-heal`.`scheduler`
              (`scheduler_id` ,`d_id` ,`hour_id` ,`date` ,`available`)
              VALUES (NULL ,  '5',  @x,  '2013-04-22',  '0');

          SET  @x = @x + 1; 
      END WHILE;
END $$

DELIMITER ;

但我想知道你试图用你从未使用的两个in-parameters做什么,并且它们与两个列的名称相同。