mysql 树结构表,通过函数更新祖级路径
通过函数方式,更新mysql树形结构表,每个节点的祖级路径
表结构
create table sys_dept
(
dept_id varchar(50) not null comment '部门id' primary key,
parent_id varchar(50) default '0' null comment '父部门id',
ancestors varchar(50) default '' null comment '祖级列表',
dept_name varchar(50) default '' null comment '部门名称',
)
function
drop function getDeptParentNodeList;
CREATE FUNCTION `getDeptParentNodeList`(`deptId` varchar(30)) RETURNS longtext CHARSET utf8
BEGIN
DECLARE parentList longtext; # 返回父节点结果集
DECLARE tempParent VARCHAR(1000); # 临时存放父节点
SET parentList = '';
SET tempParent = CAST(deptId as CHAR); # 将int类型转换为String
WHILE tempParent != '0'
DO
SELECT parent_id INTO tempParent FROM sys_dept where dept_id = tempParent; # 查询节点上所有父节点
SET parentList = CONCAT(tempParent,',',parentList); # 存入到返回结果中
END WHILE;
RETURN SUBSTRING(parentList, 1, length(parentList)-1);
END;