示例:

DELIMITER $$
CREATE FUNCTION test(countnum INT)
RETURNS INT DETERMINISTIC
BEGIN
DECLARE tempnum INT DEFAULT 0;
IF countnum > 2 THEN
RETURN ROW_COUNT();
END IF;
SET countnum = countnum+1;
SELECT test(countnum) INTO tempnum;
END $$
DELIMITER ;

SELECT test(1);

当我调用自定义函数时会抛出 Recursive stored functions and triggers are not allowed(不允许递归存储函数和触发器。)

函数是不支持递归,但是可以用存储过程递归

示例:

DELIMITER $$
CREATE PROCEDURE test(countnum INT)
end_flag:
BEGIN
DECLARE tempnum INT DEFAULT 0;
IF countnum > 2 THEN
SELECT '满足条件结束存储过程';
LEAVE end_flag;
END IF;
SET countnum = countnum+1;
CALL test(countnum);
END $$
DELIMITER ;

CALL test(1);

执行存储过程可能会抛出:

1456
Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine test

max_sp_recursion_depth :递归调用的最大深度

可以执行:SET GLOBAL max_sp_recursion_depth =层级数;

最新文章

  1. MySql安装与MySQL添加用户、删除用户与授权
  2. PHP+MYSQL+AJAX实现每日签到功能
  3. 《STL系列》之vector原理及实现
  4. IOS客户端Coding项目记录(四)
  5. python 格式化字符串的三种方法
  6. html5的程序接口与元素变化
  7. UCOS-互斥信号量(学习笔记)
  8. Part 45 to 47 Talking about Enums in C#
  9. cocos2dx 3.1从零学习(一)——入门篇(一天学会打飞机)
  10. 见过NTP服务,没见过网络流量到200M左右的NTP服务
  11. SQL Server系统表讲解
  12. 关于新装ubuntu系统update失败和build-essential失败的解决办法
  13. 【转】【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
  14. bash shell中测试命令
  15. Framework7
  16. Python3创建项目时创建了一个叫做“keyword"的包,运行项目时报ImportError: cannot import name 'iskeyword'错误
  17. IDEA运行android项目一直是同一个apk
  18. 744. Find Smallest Letter Greater Than Target
  19. FileZilla_server在Windows和Linnx下的部署安装
  20. $Mayan$游戏

热门文章

  1. ACM-ICPC 2018 南京赛区网络预赛 Lpl and Energy-saving Lamps (线段树:无序数组找到第一个小于val)
  2. onbeforeunload与onunload事件
  3. Dell 笔记本触摸板网页双指滑动黑屏
  4. Java面向对象_增强for可变参数与代码块
  5. vue简单的CheckBox节点树
  6. CCflow6 的使用
  7. chroot 的应用
  8. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第十四天(非原创)
  9. Jquery ajax 与 lazyload的混合使用(实现图片异步加载)
  10. hibernate自动建表技术_采用数据库反向生成技术