【发布时间】:2018-05-29 20:06:44
【问题描述】:
当我添加此代码时出现错误,我无法修复它。
DECLARE c1 cursor FOR SELECT i FROM integers;
OPEN c1;
FETCH c1 INTO L1;
FETCH c1 INTO L2;
FETCH c1 INTO L3;
FETCH c1 INTO L4;
FETCH c1 INTO L5;
FETCH c1 INTO L6;
CLOSE c1;
以下是完整代码。如果没有上面的代码,程序将执行并从整数表中返回六行没有重复数字,我想将其写入 L1、L2、L3、L4、L5、L6 并稍后插入表 kupony。 'howMany' 是 IN 过程参数。
DELIMITER $$
CREATE PROCEDURE addTickets (IN howMany INT)
BEGIN
DECLARE L1 INT default 0;
DECLARE L2 INT default 0;
DECLARE L3 INT default 0;
DECLARE L4 INT default 0;
DECLARE L5 INT default 0;
DECLARE L6 INT default 0;
DECLARE count1 INT;
set count1 = 0;
while count1 < howMany DO
DECLARE c1 FOR SELECT i FROM integers WHERE i BETWEEN 1 AND 49 ORDER BY RAND() LIMIT 6;
OPEN c1;
FETCH c1 INTO L1;
FETCH c1 INTO L2;
FETCH c1 INTO L3;
FETCH c1 INTO L4;
FETCH c1 INTO L5;
FETCH c1 INTO L6;
CLOSE c1;
INSERT INTO kupony VALUES(NULL, 1, L1, L2, L3, L4, L5, L6, -1, '2018-01-01', -1);
set count1 = count1 + 1;
end while;
END$$
DELIMITER ;
【问题讨论】:
-
请与我们分享错误的性质和/或错误消息。
-
#1064 - 你的语法有问题 next 'DECLARE c1 cursor FOR SELECT i FROM integers;打开 c1;将 c1 提取到 L1 中; FETC' 在第 17 行
标签: mysql cursor procedure declare