mysql 5.7 游标不返回任何值

标签 mysql stored-procedures database-cursor

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/

相关文章:

python - 类型错误 : object of type 'Cursor' has no len()

oracle - 如何将日期值传递给 plsql 中的游标?

mysql - 如何导出 MS Sql Server 数据库转储并将其导入 Mysql 数据库?

php - SQL 语法错误 id 突然为零

mysql - 如何在cakephp中编写Mysql DATE_FORMAT?

mysql - 存储过程和单元测试

sql - SQL 2008 存储过程中可选的 where 子句/参数?

python - 如何在 psycopg2 中使用服务器端游标

php - 将列乘以用户定义的变量

sql - 更新和插入存储过程