首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询找不到错误

问SQL查询找不到错误
EN

Stack Overflow用户
提问于 2015-02-12 07:35:55
回答 2查看 109关注 0票数 0

我有一个疑问:

代码语言:javascript
复制
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服务器版本对应的手册,以获得正确的语法,以便在@i < 100 BEGIN时使用“DECLARE@ int =0”。 将@i = @i +1插入行1处的lott‘

但上面写的是一个错误,但不是在哪里。我做错什么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-12 08:37:42

你应该把第一行写成这样:

代码语言:javascript
复制
DECLARE @i int DEFAULT 0;
票数 1
EN

Stack Overflow用户

发布于 2015-02-12 09:05:29

我猜你是在创建一个存储过程。

如果存储过程中有多个语句,则需要使用分号分隔它们,这是标准的分隔符,因此必须在正手进行更改。即:

代码语言:javascript
复制
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 ;

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28471814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档