MySQL存储过程语法
我正在尝试创建一个简单的存储过程,它允许我进行大规模插入,但是我遇到了语法问题,无法找出哪里出了问题,尽管将我的过程语法与现有示例进行了比较,结果似乎是正确的MySQL存储过程语法,mysql,stored-procedures,Mysql,Stored Procedures,我正在尝试创建一个简单的存储过程,它允许我进行大规模插入,但是我遇到了语法问题,无法找出哪里出了问题,尽管将我的过程语法与现有示例进行了比较,结果似乎是正确的 CREATE PROCEDURE populateUserTable() BEGIN DECLARE counter int(10); SET counter = 1; WHILE counter < 101 DO INSERT INTO user(userid) values(counter); SET cou
CREATE PROCEDURE populateUserTable()
BEGIN
DECLARE counter int(10);
SET counter = 1;
WHILE counter < 101 DO
INSERT INTO user(userid) values(counter);
SET counter = counter + 1
END WHILE;
END
创建过程populateUserTable()
开始
声明计数器int(10);
设置计数器=1;
而计数器<101
插入用户(userid)值(计数器);
设置计数器=计数器+1
结束时;
结束
在运行时,MYSQL声明:
您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第3行“”附近要使用的正确语法
还有海利特这个家伙:
创建过程populateUserTable()开始声明计数器INT(10)强>
上面是什么 你用过吗
DELIMITER $$
一开始
试一试
分隔符$$
创建过程populateUserTable()
开始
声明计数器int(10);
设置计数器=1;
而计数器<101
插入用户(userid)值(计数器);
设置计数器=计数器+1
结束时;
结束$$
定界符;
您正在尝试从mysql命令行执行此操作吗?您是否更改了分隔符?因为它分隔了构成存储过程的内容。i、 e.在CREATE
和END$$
之间填充。您不希望它在第一个处结束代码>
DELIMITER $$
CREATE PROCEDURE populateUserTable()
BEGIN
DECLARE counter int(10);
SET counter = 1;
WHILE counter < 101 DO
INSERT INTO user(userid) values(counter);
SET counter = counter + 1
END WHILE;
END $$
DELIMITER ;