mysql5.7更新组织机构层级
时间: 2023-10-13 21:20:51 浏览: 40
在 MySQL 5.7 中,你可以使用递归 WITH 语法来更新组织机构层级。以下是更新组织机构层级的步骤:
1. 创建一个临时表,用于存储组织机构的层级关系。
```sql
CREATE TEMPORARY TABLE temp_org_hierarchy (
org_id INT PRIMARY KEY,
parent_id INT,
level INT
);
```
2. 插入组织机构的根节点(即 parent_id 为 NULL 的节点)。
```sql
INSERT INTO temp_org_hierarchy (org_id, parent_id, level)
SELECT org_id, parent_id, 0
FROM org_hierarchy
WHERE parent_id IS NULL;
```
3. 使用递归 WITH 语法更新组织机构的层级关系。
```sql
WITH RECURSIVE cte (org_id, parent_id, level) AS (
SELECT org_id, parent_id, 0
FROM org_hierarchy
WHERE parent_id IS NULL
UNION ALL
SELECT o.org_id, o.parent_id, c.level + 1
FROM org_hierarchy o
JOIN cte c ON o.parent_id = c.org_id
)
UPDATE temp_org_hierarchy t
JOIN cte ON t.org_id = cte.org_id
SET t.level = cte.level;
```
4. 更新原始的组织机构表。
```sql
UPDATE org_hierarchy o
JOIN temp_org_hierarchy t ON o.org_id = t.org_id
SET o.level = t.level;
```
注意,以上代码仅为示例,实际使用时需要根据你的组织机构表的结构进行调整。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)