Mysql存储过程while循环两次

时间:2015-05-04 12:04:26

标签: mysql stored-procedures

我有以下存储过程,我需要为列,类别,功能和列插入一组数据。状态。类别总是应该是' 1'和功能1到80,状态始终为' ACTIVE'。

BEGIN
    DECLARE x  INT;
    SET x = 1;
    WHILE x  <= 80 DO
    insert into functiontocategory (category,`function`,`status`) values ('1',x,'ACTIVE');
    SET x = x+1;

    END WHILE;
END

但它给了我160行插入数据,其中2组1到80而不是一组。我的手术有什么问题。

1 个答案:

答案 0 :(得分:0)

DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `test`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `test`()
BEGIN
    DECLARE X  INT;
    SET X = 1;
    WHILE X  <= 80 DO
    INSERT INTO functiontocategory (category,`function`,`status`) VALUES ('1',X,'ACTIVE');
    SET X = X+1;
    END WHILE;
    END$$
    DELIMITER ;

我创建了一个数据库作为test和一个表函数类别(类别int(3),函数文本,状态varchar(10))和一个名为test..for的过程测试我使用了call test()并插入了80行完全