MySQL 函数过程递归
作者:xling 来源:xling博客 发布时间:2008-07-25 19:32:00
标签:mysql,错误,递归
目的是想通过给定一个ID,取出所有的子ID,包括子ID的子ID。
一开始写成FUNCTION,因为FUNCTION调用方便,但是报错:
ERROR 1424 (HY000): Recursive stored functions and triggers are not allowed
就是说:mysql不支持 函数递归,查了一下,MYSQL支持过程递归。
于是改成过程:
CREATE PROCEDURE USNOWER_P_SUB_CAT(IN IN_ID INT,OUT OUT_IDS VARCHAR(1000))
BEGIN
DECLARE V_STOP BOOLEAN DEFAULT FALSE;
DECLARE V_ID INT;
DECLARE V_SUB_IDS VARCHAR(1000);
DECLARE V_IDS VARCHAR(1000);
DECLARE CUR1 CURSOR FOR SELECT ID FROM USNOWER_ART_CAT WHERE FA_ID = IN_ID;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET V_STOP = TRUE;
SET @@max_sp_recursion_depth = 10;
OPEN CUR1;
LAB1:WHILE NOT V_STOP DO
FETCH CUR1 INTO V_ID;
IF V_STOP THEN
LEAVE LAB1;
END IF;
CALL USNOWER_P_SUB_CAT(V_ID,V_SUB_IDS);
SET V_IDS = CONCAT_WS(',',V_IDS,V_ID,V_SUB_IDS);
END WHILE LAB1;
SET OUT_IDS = V_IDS;
END//
开始没加红色的那句,报错:
ERROR 1456 (HY000): Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine ***
SELECT @@max_sp_recursion_depth ,结果是0,
我这小小的递归跟本不可能超过10层,所以就在过程里加入了红色的那句。
运行,一切OK,
就是调试太麻烦了,怀念TOAD做ORACLE的时候,那个叫做方便。
0
投稿
猜你喜欢
- 打过了趟深圳回来后,已经快半个月,在广州购书中心逛了下,发现2本前端书《重构HTML-改善WEB应用的设计》、《CSS3 实战》,看了一半《
- 在当前的Web设计中,jQuery被越来越多地应用在Web开发中,之所以jQuery收到如此程度的欢迎,除了其本身具备的优秀易读易操作的代码
- 从publish 表中取出第 n 条到第 m 条的记录的sql语句写法:SELECT TOP m-n+1 *&
- 上四篇的内容是把常用的XHTML标签拿出来介绍了一下,不是很详细。不过没关系,重点是要能先知道用他们,以后深入了再去细细研究更为详细的特性以
- [root@vm1 ~]# rpm -ivh groundwork-foundation-pro-1.6.1-67.noarch.rpm P
- IE的特殊性 IE的DOM元素属性与Firefox, Opera, Safari有些不同。在IE中,我们可以给DOM添加任意自定
- 我们平常在网页上显示的字体最小一般是12PX,当小于10PX时,显示的效果就大打折扣了,因为中文默认的字体是宋体,当小于12PX时的效果如下
- 在asp.net 2.0中,很多情况下,使用gridview控件的话,甚至只需要拖拉控件,设置属性就可
- 在新建数据库或附加数据库后,想添加关系表,结果出现下面的错误: 此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使
- Eric A. Meyer 对基于 Web 标准的 CSS 与 HTML 绝非一知半解,他是这个领域杰出的专家,曾写过不少 CSS 方面的书
- 手痒痒系列之简单的放大镜写了个放大镜功能,可以设置显示的宽高width,height显示的位置,float ‘left’ 'righ
- 1.SQL Server 2005中的存储过程并发问题问:我在SQL Server2005中遇到了并发问题。我持有车票的公共汽车上有一些空闲
- Liwu_Items表,CreateTime列建立聚集索引 第一种,sqlserver2005特有的分页语法 代码如下:declare @p
- 由于新版站长资讯即将发布,我每天都在想如何防止采集,目前想到的几种办法:1、多做几个列表和内容模板,随机使用,对目前大多数cms来说,这种方
- 磁盘搜索是性能的很大瓶颈。这个问题在数据大量增长以至于无法使用有效的缓存时尤为明显。或多或少随即访问大数据库时,就必然会有至少一次磁盘搜索来
- 前言:书终于完稿了,我也有了一些自己的时间,于是决定将书中讲到的一些比较常见的知识点整理出来,发在Blog里面。当然也不会完全发表出来,毕竟
- 本文作为属性篇的最后一篇文章, 将讲述HTML和CSS的关键—盒子模型(Box model). 理解Box model的关键便是margin
- 描述event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。event对象只在事件发生的过程中才有效。eve
- 这是一个非常简单的解决方案,柱状图中每一条柱都是一个 div,数据的大小呈现在 div 的宽或高上。 查看演示 例子下载实现的原理
- <%@LANGUAGE="xxx" CODEPAGE="936"%>一般又分为<%