SQL Query无法发现错误

时间:2015-02-12 07:35:56

标签: mysql sql

我有这个问题:

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行

但是它说错误在其中但不在哪里。 我做错了什么?

2 个答案:

答案 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 ;

请注意,用户变量是基于连接的,并且过程中声明的变量仅在过程本身的范围内。