2015-05-04 161 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