首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql中使用游标循环结束循环

如何在mysql中使用游标循环结束循环
EN

Stack Overflow用户
提问于 2018-02-17 10:46:49
回答 1查看 9.8K关注 0票数 0

下面的代码用于从名为employee7的表中找到前五位薪资最高的雇员,并使用mysql中的游标将详细信息添加到另一个名为temp的表中,但我得到了错误

在mysql语法中有一个错误,请检查对应于mysql服务器版本的mannual,以获得正确的语法,以便在第17行使用“循环指针循环;关闭c7;结束”。

代码语言:javascript
复制
DELIMITER //
create procedure cursordemo()
begin 
    declare eno int(8);
    declare ename varchar(15);
    declare esal int(10);
    declare c7 cursor for select empno,empnm,empsal from employee7 order by empsal desc;
    open c7;
    cursorloop:loop
    fetch c7 into eno,ename,esal;
    if c7.rowcount>5 then  
        leave cursorloop;
    insert into temp values (esal,eno,ename);
    end loop cursorloop;
    close c7;
    end //
delimiter ;
EN

回答 1

Stack Overflow用户

发布于 2018-02-17 12:56:25

我不知道您从哪里得到使用c7.rowcount的想法,但这不是有效的mysql,在mysql中退出游标循环的更常见的方法是使用示例中的处理程序

代码语言:javascript
复制
DELIMITER //
create procedure cursordemo()
begin 
    declare eno int(8);
    declare ename varchar(15);
    declare esal int(10);
    declare done int default 0;
    declare c7 cursor for select emp_no,last_name,salary from employees order by salary desc;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    open c7;
    cursorloop:loop
    if done = true then  
        leave cursorloop;
    end if;
    fetch c7 into eno,ename,esal;

    insert into temp values (esal,eno,ename);
    end loop cursorloop;
    close c7;
    end //
delimiter ;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48840483

复制
相关文章

相似问题

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