我有这个问题:
DECLARE @i int = 0
WHILE @i < 100 BEGIN
SET @i = @i + 1
INSERT INTO lottery (ticket, bought) VALUES (@i, false)
END
MySQL服务器
错误:错误代码:1064。您的SQL语法出错;检查与您的MySQL服务器版本对应的手册 在'DECLARE @i int = 0 WHILE @i&lt;附近使用正确的语法100 BEGIN
SET @i = @i + 1 INSERT INTO lott'在第1行
但是它说错误在其中但不在哪里。 我做错了什么?
答案 0 :(得分:1)
你应该把第一行放在这样:
DECLARE @i int DEFAULT 0;
答案 1 :(得分:0)
我假设您正在创建存储过程。
如果存储过程中有多个语句,则需要使用半列分隔它们,这是标准分隔符,因此您必须正手更改它。即:
DELIMTER $$
CREATE PROCEDURE procedurename ()
BEGIN
DECLARE i INT;
SET i := 0;
WHILE i < 100
BEGIN
SET i := i + 1;
INSERT INTO lottery (ticket, bought) VALUES (i, 0);
END;
END$$
DELIMITER ;
请注意,用户变量是基于连接的,并且过程中声明的变量仅在过程本身的范围内。