Mysql(版本 5.7)游标不工作。试了很多次,网上查也查不出问题所在。
它正确地循环遍历货币表中的尽可能多的记录。但是,当我尝试从游标读取时,它仅返回 null,而不返回表货币中的实际值。货币表有数据。
DROP PROCEDURE IF EXISTS proc2;
CREATE PROCEDURE proc2()
BEGIN
DECLARE finished INTEGER DEFAULT 0;
DECLARE code VARCHAR(255);
DECLARE myCursor CURSOR FOR SELECT code FROM currency;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
OPEN myCursor;
delete from dummy;
read_loop: LOOP
FETCH myCursor INTO code;
IF finished = 1 THEN
LEAVE read_loop;
END IF;
insert into dummy(name) values(code);
END LOOP read_loop;
CLOSE myCursor;
End;
最佳答案
最后,它与以下脚本更改一起工作。 (即添加表别名后。)
出于某种原因,我尝试的“代码”列需要一个别名。也许是保留关键字,不确定。
DECLARE myCursor CURSOR FOR SELECT c.code FROM currency c;
关于mysql 5.7 游标不返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56838761/