我有一个疑问:
DECLARE @i int = 0
WHILE @i < 100 BEGIN
SET @i = @i + 1
INSERT INTO lottery (ticket, bought) VALUES (@i, false)
ENDMySQL服务器
错误:错误代码: 1064。您的SQL语法出现了错误;检查与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在@i < 100 BEGIN时使用“DECLARE@ int =0”。 将@i = @i +1插入行1处的lott‘
但上面写的是一个错误,但不是在哪里。我做错什么了?
发布于 2015-02-12 08:37:42
你应该把第一行写成这样:
DECLARE @i int DEFAULT 0;发布于 2015-02-12 09:05:29
我猜你是在创建一个存储过程。
如果存储过程中有多个语句,则需要使用分号分隔它们,这是标准的分隔符,因此必须在正手进行更改。即:
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 ;请注意,用户变量是基于连接的,而过程中声明的变量仅在过程本身的范围内。
https://stackoverflow.com/questions/28471814
复制相似问题