2015-05-04 224 views
0

我有以下存储过程,我需要为列的类别,函数&状态插入一组数据。如果类别始终为'1'且功能1至80,则状态始终为'ACTIVE'。Mysql存储过程while循环两次

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,而不是一组。我的程序有什么问题。

+0

你可以调用两次程序,你的程序看起来很好 – Girish

回答

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 ; 

我创建一个数据库作为试验和表functiontocategory(类别INT(3)中,函数文本,状态VARCHAR(10)),并用test..for测试我用呼叫测试名称的程序()它正好插入80行

+0

它将如何工作,请你详细说明一下? – Girish

+0

yes..like我创建了一个数据库作为测试和一个表functiontocategory(类别int(3),'功能'文本,'状态'varchar(10))和名为test..for程序测试我使用呼叫测试()和它插入80行正好..他想要 – DevLakshman

+0

这不是答案...你应该提供解决方案而不是你的测试结果..任何理由为什么行插入两次? – Girish