mysql数据库,存储过程中如何判断游标Cursor中结果集是否为空

来源:互联网 发布:中国医科大学网络 编辑:程序博客网 时间:2024/05/17 23:19

1.mysql存储过程

drop procedure if exists curdemo  CREATE PROCEDURE curdemo(pid int)

BEGIN
      DECLARE notfound INT DEFAULT 0;    #定义一个辅助变量用于判断
      DECLARE a int;   #定义游标输出值赋予的变量
      DECLARE cur1 CURSOR FOR SELECT id FROM test.t where id= pid;  #定义游标
      DECLARE CONTINUE HANDLER FOR NOT FOUND SET notfound = 1;  #定义declare continue handler,这个会根据上下文是否有结果判断是否执行SET notfound = 1, 必须在游标定义后定义

      OPEN cur1;
      FETCH cur1 INTO a;
      if notfound = 1 then
            select 'no result';
           #写业务逻辑
      ELSE
            select concat('result:', a);
            #写业务逻辑
      end if;
      CLOSE cur1;

END




0 0
原创粉丝点击