gpt4 book ai didi

MYSQL嵌套循环存储过程问题

转载 作者:可可西里 更新时间:2023-11-01 07:05:47 27 4
gpt4 key购买 nike

我正在尝试在具有嵌套循环的 mysql 中执行一个简单的存储过程。这个想法是检查表是否有任何值,如果没有则插入它们。下面是存储过程的代码。我已经测试了代码的所有部分,如果我注释掉嵌套循环,它将遍历 _my_curs_ 的所有值。但是当我将嵌套循环放在那里时,它只会循环遍历 _my_curs_ 的第一个值,然后当它完成时它似乎不会到达下一个值。嵌套循环似乎可以很好地遍历所有值。

DECLARE _my_id_ INT;
DECLARE _your_id_ INT;
DECLARE _found_id_ INT;

DECLARE _my_curs_ CURSOR FOR SELECT my_id FROM my_ref;
DECALRE _your_curs_ CURSOR FOR SELECT _your_id FROM your_ref;

OPEN _my_curs_;
loop_MY_CURSOR_:LOOP

FETCH _my_curs_ INTO _my_id_;

OPEN _your_curs_;
loop_YOUR_CURSOR_:LOOP

FETCH _your_curs_ INTO _your_id_;

SET _found_id_ = (SELECT COUNT(id)
FROM access WHERE my_id = _my_id_ AND your_id = _your_id_);

IF _found_id_ = 0 THEN
INSERT INTO access(my_id, your_id)
VALUES(_my_id_, _your_id_);
END IF;

END LOOP loop_YOUR_CURSOR;
CLOSE _your_curs_;

END LOOP loop_MY_CURSOR;
CLOSE _my_curs_;

END $$

DELIMITER;

最佳答案

Roland Bouman 在这里写了一篇很好的文章,解释了嵌套游标的陷阱和解决方法:link text

关于MYSQL嵌套循环存储过程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2200544/

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