mysql存储过程以递归方式调用自身

mysql存储过程以递归方式调用自身,第1张

mysql存储过程以递归方式调用自身

工作仅在mysql版本> = 5中

存储过程声明是这个,

您可以给它一点点改善,但是可以这样工作:

DELIMITER $$CREATE PROCEDURE calctotal(   IN number INT,   OUT total INT)BEGIN   DECLARE parent_ID INT DEFAULT NULL ;   DECLARE tmptotal INT DEFAULT 0;   DECLARE tmptotal2 INT DEFAULT 0;   SELECt parentid   FROM test   WHERe id = number INTO parent_ID;      SELECt quantity   FROM test   WHERe id = number INTO tmptotal;   IF parent_ID IS NULL    THEN    SET total = tmptotal;   ELSE         CALL calctotal(parent_ID, tmptotal2);    SET total = tmptotal2 * tmptotal;      END IF;END$$DELIMITER ;

调用就像(设置此变量很重要):

SET @@GLOBAL.max_sp_recursion_depth = 255;SET @@session.max_sp_recursion_depth = 255;CALL calctotal(6, @total);SELECT @total;


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4976155.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存