存储过程语法错误求指导

MySql 码拜 8年前 (2016-02-03) 914次浏览
CREATE DEFINER = `root`@`%` PROCEDURE `ce2` ()
BEGIN DECLARE p1 INT;
SET p1 = 1;
REPEAT INSERT INTO f_cai (f_num) VALUES (floor(1 + rand() * 100));
SET p1 = p1 + 1;
UNTIL p1 > 1000 END REPEAT;
END;
BEGIN DECLARE p2 INT;
SET p2 = 1;
REPEAT INSERT INTO l_cai (l_num) VALUES (floor(1 + rand() * 200));
SET p2 = p2 + 1;
UNTIL p2 > 1000 END REPEAT
END;
执行之后报错:
Query OK, 0 rows affected (0.00 sec)
ERROR 1064 (42000): 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 “DECLARE p2 INT;
SET p2 = 1;
检查发现p1定义的是ok的,p2定义的有错误,但是2个语法是一样的,求指导
解决方案

20

第一个 END 处已经表示结束了,要包含第二个,你应该在第一个 BEGIN 前再加一个 BEGIN, 在最后一个 END 后再加一个 END
另外,第2个  END REPEAT 少写了一个分号

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明存储过程语法错误求指导
喜欢 (0)
[1034331897@qq.com]
分享 (0)