bitsCN.com

Mysql创建递归型的存储过程

第一步:SET max_sp_recursion_depth=12;

第二步:创建createChildDept过程

Sql代码

DELIMITER $$

USE `zhiku`$$

DROP PROCEDURE IF EXISTS `createChildDept`$$

CREATE DEFINER=`root`@`%` PROCEDURE `createChildDept`(IN rootId INT,IN nDepth INT)

BEGIN

DECLARE done INT DEFAULT 0;

DECLARE b INT;

DECLARE cur1 CURSOR FOR SELECT id FROM zk_departments WHERE parent_id=rootId;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

INSERT INTO tmpLst VALUES (NULL,rootId,nDepth);

OPEN cur1;

FETCH cur1 INTO b;

WHILE done=0 DO

CALL createChildDept(b,nDepth+1);

FETCH cur1 INTO b;

END WHILE;

CLOSE cur1;

END$$

DELIMITER ;

第三步:创建showChildDept

Sql代码

DELIMITER $$

USE `zhiku`$$

DROP PROCEDURE IF EXISTS `showChildDept`$$

CREATE DEFINER=`root`@`%` PROCEDURE `showChildDept`(IN rootId INT)

BEGIN

CREATE TEMPORARY TABLE IF NOT EXISTS tmpLst

(sno INT PRIMARY KEY AUTO_INCREMENT,id INT,depth INT);

DELETE FROM tmpLst;

CALL createChildDept(rootId,0);

SELECT zk_departments.id,zk_departments.name FROM tmpLst,zk_departments WHERE tmpLst.id=zk_departments.id AND zk_departments.id>rootId ORDER BY tmpLst.sno;

#select zk_user_departments.dept_id,zk_user_departments.user_id from zk_user_departments left join tmpLst on tmpLst.id=zk_user_departments.dept_id and zk_user_departments.dept_id>rootId order by tmpLst.sno;

END$$

DELIMITER ;

第四步:CALL showChildDept(128)bitsCN.com

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

TAG标签:存储

mysql 递归表的创建_Mysql创建递归型的存储过程_MySQL相关推荐

  1. mysql判断表不存在则创建

    MYSQL判断不存在时创建表或创建数据库: 创建数据库: 1 Create Database If Not Exists MyDB Character Set UTF8 创建数据表: 1 2 3 4 ...

  2. mysql 建表 练习_数据库创建表,插入数据练习

    create table shangpin("商品名称" varchar2(30), "商品种类" varchar2(30), "商品单价" ...

  3. mysql 建表 identity_identity数据库表格创建方法

    1.写一个继承于identityDbContext的DbContext 并创建构造方法. 2.注册identity和dbcontext服务 3.迁移 Add-Migration AddProductR ...

  4. mysql 多表既有内连接又有外连接_MySQL 多表查询中的内连接和外连接

    一般情况下一个网站的数据库通常会有多张数据表组成,这些数据表分别存储网站不同区域的内容.数据表之间可以用类似 ID 的字段来关联,在查询的时候可以通过一条语句来查询多张表的内容.例如 论坛的数据库,帖 ...

  5. mysql建表datetime_mysql建表-创建时间、修改时间

    mysql在建表时要有创建时间.修改时间这两个字段 Navicat设置方法和SQL语法如下: 小编用的mysql版本是5.7,查看自己的数据库方法如下:蜗牛:Navicat查看数据库版本​zhuanl ...

  6. mysql表创建在哪_mysql创建表命令是哪句

    如何创建MySQL数据表?下面本篇文章给大家介绍通过命令提示符创建数据表的方法,希望对你们有所帮助. 创建MySQL数据表需要以下信息: ● 表名 ● 表字段名 ● 定义每个表字段 基本语法 以下为创 ...

  7. mysql删除表命令_MySQL创建和删除表操作命令实例讲解

    创建表 简单的方式 CREATE TABLE person ( number INT(11), name VARCHAR(255), birthday DATE ); 或者是 CREATE TABLE ...

  8. mysql创建数据库时候同时创建表空间_MySQL 创建InnoDB表空间_编程学问网

    15.2.5. 创建InnoDB表空间 假设你已经安装了MySQL,并且已经编辑了选项文件,使得它包含必要的InnoDB配置参数.在启动MySQL之前,你应该验证你为InnoDB数据文件和日志文件指定 ...

  9. mysql创建表时显示错误_MYSQL创建表出现错误 ERROR Code 1118如何解决

    ERROR Code 1118.Row size too large. The maximum row size for the used table type, not counting BLOBs ...

  10. mysql 创建删除表_mysql创建删除表的的详细解析

    本文主要介绍MySQL.html "target =" _ blank "> MySQL对创建删除表的详细分析.我希望作者收集的相关知识和数据对你有所帮助.创建 表 ...

最新文章

  1. 970计算机技术基础,2017年武汉大学测绘遥感信息工程国家重点实验室970计算机技术基础考研强化模拟题...
  2. 《ASP.NET AJAX程序设计——第II卷:客户端Microsoft AJAX Library相关》定稿+详细章节列表...
  3. [蓝桥杯][算法训练VIP]方格取数(双线程dp)
  4. python初始化函数_当你学会了Python爬虫,网上的图片素材就免费了
  5. 关于toString()与toLocaleString()的区别
  6. java pdf验签_java pdf验签
  7. 第二篇: Silverlight -- 下载与安装
  8. [转]XCode调试 设置全局断点并快速定位问题代码所在行
  9. 「镁客·请讲」亮亮视野吴斐:行业应用体现AR硬件的价值本质
  10. 萤火虫小程序_玩转跨界营销,《狐妖小红娘》都使上了哪些神仙操作?
  11. YOLOv2论文笔记
  12. 传智播客8月C/C++基础班开班
  13. java: 找不到符号 报错
  14. 利用python批量修改word文档页眉
  15. 泰坦尼克号电影 完整字幕 中英文对比 完整版
  16. IT民工也在老龄化?
  17. 加强c语言,加强学法指导 提高C语言学习能力
  18. ios 获取沙盒文件名_iOS之沙盒路径
  19. ff15测试软件翻译,最终幻想15数据详细分析 FF15详细的数值参数测试
  20. 小组项目的初步构建与需求分析

热门文章

  1. 如何生成希尔伯特矩阵
  2. 计算机美术设计基础教案,电脑美术美术教案
  3. 计算机数据链路层教案,4.1数据链路层作用教案(计算机网络技术基础教案).doc...
  4. 形象易懂的傅里叶变换、短时傅里叶变换和小波变换
  5. 计算机械零件体积,第三章机械零件的工作能力和计算准则.docx
  6. WinPE 安装系统
  7. 日志分析软件 Splunk
  8. 在线购物系统-面对对象设计
  9. 【3D计算机视觉】Pointnet源码分析
  10. 计算机组装与维护结构图,图解计算机组装与维护