在heidisql上运行这个例程,它运行时有0行受影响,即使只有1行受影响。在这个存储过程之外,这两个select语句似乎都可以正常工作。
BEGIN
DECLARE someId INT;
DECLARE done INT DEFAULT FALSE;
DECLARE cur1 CURSOR FOR
select anotherId from tableA
where yetAnotherId IN(another select statement);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop: LOOP
IF done THEN
LEAVE read_loop;
END IF;
FETCH cur1 INTO someId;
update tableB
set x = 'hello', y = 'world'
where something = someId;
END LOOP;
CLOSE cur1;
END;
我想知道这个程序的结构有什么问题。在我看来,即使光标应该包含一个条目,它也不包含。
谢谢
edit:看起来“someid”匹配了一个同名的表字段,因此出现了问题。现在已经解决了。
1条答案
按热度按时间blmhpbnm1#
你的sp看起来不错,我已经为mysql做了更改,请尝试一下