mysql 递归表的创建_Mysql创建递归型的存储过程_MySQL
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相关推荐
- mysql判断表不存在则创建
MYSQL判断不存在时创建表或创建数据库: 创建数据库: 1 Create Database If Not Exists MyDB Character Set UTF8 创建数据表: 1 2 3 4 ...
- mysql 建表 练习_数据库创建表,插入数据练习
create table shangpin("商品名称" varchar2(30), "商品种类" varchar2(30), "商品单价" ...
- mysql 建表 identity_identity数据库表格创建方法
1.写一个继承于identityDbContext的DbContext 并创建构造方法. 2.注册identity和dbcontext服务 3.迁移 Add-Migration AddProductR ...
- mysql 多表既有内连接又有外连接_MySQL 多表查询中的内连接和外连接
一般情况下一个网站的数据库通常会有多张数据表组成,这些数据表分别存储网站不同区域的内容.数据表之间可以用类似 ID 的字段来关联,在查询的时候可以通过一条语句来查询多张表的内容.例如 论坛的数据库,帖 ...
- mysql建表datetime_mysql建表-创建时间、修改时间
mysql在建表时要有创建时间.修改时间这两个字段 Navicat设置方法和SQL语法如下: 小编用的mysql版本是5.7,查看自己的数据库方法如下:蜗牛:Navicat查看数据库版本zhuanl ...
- mysql表创建在哪_mysql创建表命令是哪句
如何创建MySQL数据表?下面本篇文章给大家介绍通过命令提示符创建数据表的方法,希望对你们有所帮助. 创建MySQL数据表需要以下信息: ● 表名 ● 表字段名 ● 定义每个表字段 基本语法 以下为创 ...
- mysql删除表命令_MySQL创建和删除表操作命令实例讲解
创建表 简单的方式 CREATE TABLE person ( number INT(11), name VARCHAR(255), birthday DATE ); 或者是 CREATE TABLE ...
- mysql创建数据库时候同时创建表空间_MySQL 创建InnoDB表空间_编程学问网
15.2.5. 创建InnoDB表空间 假设你已经安装了MySQL,并且已经编辑了选项文件,使得它包含必要的InnoDB配置参数.在启动MySQL之前,你应该验证你为InnoDB数据文件和日志文件指定 ...
- mysql创建表时显示错误_MYSQL创建表出现错误 ERROR Code 1118如何解决
ERROR Code 1118.Row size too large. The maximum row size for the used table type, not counting BLOBs ...
- mysql 创建删除表_mysql创建删除表的的详细解析
本文主要介绍MySQL.html "target =" _ blank "> MySQL对创建删除表的详细分析.我希望作者收集的相关知识和数据对你有所帮助.创建 表 ...
最新文章
- 970计算机技术基础,2017年武汉大学测绘遥感信息工程国家重点实验室970计算机技术基础考研强化模拟题...
- 《ASP.NET AJAX程序设计——第II卷:客户端Microsoft AJAX Library相关》定稿+详细章节列表...
- [蓝桥杯][算法训练VIP]方格取数(双线程dp)
- python初始化函数_当你学会了Python爬虫,网上的图片素材就免费了
- 关于toString()与toLocaleString()的区别
- java pdf验签_java pdf验签
- 第二篇: Silverlight -- 下载与安装
- [转]XCode调试 设置全局断点并快速定位问题代码所在行
- 「镁客·请讲」亮亮视野吴斐:行业应用体现AR硬件的价值本质
- 萤火虫小程序_玩转跨界营销,《狐妖小红娘》都使上了哪些神仙操作?
- YOLOv2论文笔记
- 传智播客8月C/C++基础班开班
- java: 找不到符号 报错
- 利用python批量修改word文档页眉
- 泰坦尼克号电影 完整字幕 中英文对比 完整版
- IT民工也在老龄化?
- 加强c语言,加强学法指导 提高C语言学习能力
- ios 获取沙盒文件名_iOS之沙盒路径
- ff15测试软件翻译,最终幻想15数据详细分析 FF15详细的数值参数测试
- 小组项目的初步构建与需求分析