MySQL集错误
每次我尝试运行这个查询时,我都会在附近发现一个MySQL错误MySQL集错误,mysql,sql,database,stored-procedures,Mysql,Sql,Database,Stored Procedures,每次我尝试运行这个查询时,我都会在附近发现一个MySQL错误 'BEGIN SET @v1 = 60000' at line 3 我不知道我做错了什么,我感谢你的帮助 CREATE PROCEDURE insertgear BEGIN SET @v1 = 60000; WHILE v1 < 61000 DO <insert statement> SET v1 = v1 + 1 END WHILE; END CALL insertgea
'BEGIN SET @v1 = 60000' at line 3
我不知道我做错了什么,我感谢你的帮助
CREATE PROCEDURE insertgear
BEGIN
SET @v1 = 60000;
WHILE v1 < 61000 DO
<insert statement>
SET v1 = v1 + 1
END WHILE;
END
CALL insertgear
创建过程insertgear
开始
设置@v1=60000;
而v1<61000
设置v1=v1+1
结束时;
结束
调用insertgear
*编辑我从60000开始的原因是因为我在插入中使用了该数字作为ID您需要声明
v1
并稍微整理一下您的语法,例如
CREATE PROCEDURE insertgear()
BEGIN
DECLARE v1 int;
SET v1 = 60000;
WHILE v1 < 61000 DO
<insert statement>
SET v1 = v1 + 1;
END WHILE;
END
创建过程insertgear()
开始
声明v1 int;
设置v1=60000;
而v1<61000
设置v1=v1+1;
结束时;
结束
首先需要声明,我会使用:=since=作为查询中的比较运算符进行计算。并不是说set v1=6000是一个查询,而是为了一致性。这似乎在sqlfiddle中起作用
创建过程insertgear()
开始
声明v1 int默认值为1;
设置v1:=60000;
而v1<61000
设置v1:=v1+1;
结束时;
结束
//
调用insertgear();
谢谢,添加了这些更改,但是仍然得到一个错误在第3行开始声明@v1 int
前缀用于mysql中的会话变量,我已经相应地修改了答案谢谢你的回复,我得到了与我发布@TobyLL comments相同的错误你现在还明白了吗?这似乎很管用。
CREATE PROCEDURE insertgear()
BEGIN
DECLARE v1 int DEFAULT 1;
SET v1 := 60000;
WHILE v1 < 61000 DO
<insert stm>
SET v1 := v1 + 1;
END WHILE;
END
//
call insertgear();