gpt4 book ai didi

mysql - 如何在存储过程中创建mysql嵌套循环

转载 作者:行者123 更新时间:2023-11-29 00:48:21 24 4
gpt4 key购买 nike

我得到了要创建的异常。有谁能够帮助我?如何以正确的方式在 Mysql 的存储过程中编写嵌套循环,我的错误是什么?

DELIMITER $$

`INVESTMENT_MATCH_POINT_CREATOR`(_percentage INT, _vat_tex INT)
BEGIN
DECLARE _user_id INT;
DECLARE _package_id INT;


DECLARE _left_investment INT;
DECLARE _right_investment INT;

DECLARE _left_point INT;
DECLARE _right_point INT;

DECLARE _left_carry_point INT;
DECLARE _right_carry_point INT;

DECLARE _get_point INT;

DECLARE done BOOLEAN DEFAULT FALSE;
DECLARE _user_investment_table CURSOR FOR SELECT user_id,package_id,left_invesetment,right_investment DATA FROM user_investment_match;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN _user_investment_table;

read_loop:LOOP

FETCH _user_investment_table INTO _user_id,_package_id,_left_investment,_right_investment;

IF done THEN
LEAVE read_loop;
END IF;

BEGIN
DECLARE _match_point INT;
DECLARE done2 BOOLEAN DEFAULT FALSE;

DECLARE _package_match_point_table CURSOR FOR SELECT match_point DATA FROM package_match_points WHERE package_id=_package_id ORDER BY match_point DESC;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done2 = TRUE;

OPEN _package_match_point_table;
read_loop2:LOOP

FETCH _package_match_point_table INTO _match_point;

IF done2 THEN
LEAVE read_loop2;
END IF;

/*if(_match_point=<_left_investment) and (_match_point=<_right_investment) then
set _left_point=abs(_left_investment-_match_point);
set _right_point=abs(_right_investment-_match_point);
set _get_point=((_match_point*_percentage)/100);
end if;*/

END LOOP;
CLOSE _package_match_point_table;
END$$




END LOOP;
CLOSE _user_investment_table;

END$$

DELIMITER ;

最佳答案

您应该只在过程结束时使用指定的定界符,但是在您的代码中,您在内 block 的末尾使用 $$ 定界符,(换句话说,您使用的是 $$ 定界符,它表示在程序实际结束之前结束)

关于mysql - 如何在存储过程中创建mysql嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590037/

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