gpt4 book ai didi

mysql - 为什么我的 MySQL 存储过程不循环?

转载 作者:行者123 更新时间:2023-11-29 13:31:11 25 4
gpt4 key购买 nike

就是这里了。它应该循环 120,000 次,但实际上只循环了两次。 SELECT DISTINCT Barcode FROM albumitemdetails_custom; 手动运行时返回 120,000 行。我的代码有什么问题吗?

DELIMITER $$

CREATE DEFINER=`testuser`@`%` PROCEDURE `AlbumMover`()
BEGIN

DECLARE done INT DEFAULT 0;
DECLARE barcode varchar(100);
DECLARE cur1 CURSOR FOR SELECT DISTINCT barcode FROM albumitemdetails_custom;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

OPEN cur1;

REPEAT
FETCH cur1 INTO barcode;

CALL AlbumMoverGenre(barcode);
CALL AlbumMoverProducer(barcode);

UNTIL done END REPEAT;

CLOSE cur1;

END

最佳答案

根据我的经验,如果有 SELECT 语句不返回任何结果,或者 FETCH 当然,循环就会被破坏。从您的代码中无法判断,因为您没有显示 AlbumMoverGenreAlmbumMoverProducer 的代码,但我会检查任一过程中是否属于这种情况。

只要查看您的代码,两个子过程中都会出现问题。

当它在第二次迭代时中断时,我会获取不同条形码查询的结果集,并使用该值运行子过程,看看结果是什么。

关于mysql - 为什么我的 MySQL 存储过程不循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19436685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com