程序错误与while

时间:2016-04-18 07:15:16

标签: mysql while-loop

你知道它为什么不起作用吗?

_score

我收到错误

  

#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近' DELIMITER'在第1行

2 个答案:

答案 0 :(得分:0)

"first sub category for sec,second for first category"

以上部分不是存储过程的一部分......对吗?下面是存储过程:

CREATE TABLE IF NOT EXISTS `a_loop` 
(
    `id` int(11) NOT NULL DEFAULT '0',
    `num` varchar(50) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

答案 1 :(得分:0)

在分隔符后给出一个空格:) 代码失败

DELIMITER $$
CREATE PROCEDURE test_a_loop()
BEGIN
    DECLARE x  INT;
    DECLARE str  VARCHAR(255);   
    SET x = 0;
    SET str =  '';
    WHILE x < 5 DO
    SET x = x + 1;
    SET str =  CONCAT('num-', x);
    INSERT INTO a_loop (id,num) VALUES (x, str);
    END WHILE;
END$$
DELIMITER;

空格后:

DELIMITER $$
CREATE PROCEDURE test_a_loop()
BEGIN
    DECLARE x  INT;
    DECLARE str  VARCHAR(255);   
    SET x = 0;
    SET str =  '';
    WHILE x < 5 DO
    SET x = x + 1;
    SET str =  CONCAT('num-', x);
    INSERT INTO a_loop (id,num) VALUES (x, str);
    END WHILE;
END$$
DELIMITER ;