med*_*ium 5 mysql stored-procedures
我试图在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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15911 次 |
| 最近记录: |