我正在尝试在MYSQL中使用游标循环,但它无法正常工作。我基本上复制了http://dev.mysql.com/doc/refman/5.0/en/cursors.html中的示例,除了我使用函数而不是过程。那有关系吗?
当我尝试运行该功能时 - 从双重选择xxx() - 我收到错误:'字段列表'中的未知列“已完成”。怎么办?
delimiter $$
create function xxx()
returns int deterministic
begin
DECLARE a INT;
DECLARE cur1 CURSOR FOR SELECT id FROM my_table;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO a;
IF done THEN
LEAVE read_loop;
END IF;
END LOOP;
CLOSE cur1;
return 1;
end$$
delimiter ;
答案 0 :(得分:3)
你没有声明done
。
DECLARE done INT DEFAULT FALSE;
最后
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;