1. 程式人生 > >第一個MYSQL儲存過程以及其中遇到的空格問題

第一個MYSQL儲存過程以及其中遇到的空格問題

最近寫了一個mysql儲存過程,遇到了一個極其奇怪的問題,提示如下:

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET I = I+1;   
   END WHILE;   
END' at line 7

後來經過一些列排查,發現是因為while do後面多了幾個空格,但是為什麼空格會使sql報錯,至今未解。

錯誤程式:

WHILE I < 200 DO        
        SET I = I+1;   
   END WHILE;   

正確程式:

WHILE I < 200 DO
        SET I = I+1;   
   END WHILE;   

兩者的區別就是前者DO後面多了幾個空格,有懂得大神請給我留言哦。

下面附上我的第一個儲存過程程式碼:

DELIMITER $$     
DROP PROCEDURE IF EXISTS MYpro$$     
CREATE PROCEDURE MYpro()   
BEGIN   
declare  i int ; 
declare dayString varchar(20);
declare beforeDay varchar(20);
set dayString ='';
set beforeDay='';
    SET I = 0;   
    WHILE I < 200 DO   
/*業務程式碼*/
        SET I = I+1;   
    END WHILE;   
END$$     
DELIMITER ;