gpt4 book ai didi

mysql - 添加新条目时更新星形列直到根节点

转载 作者:行者123 更新时间:2023-11-29 22:34:39 27 4
gpt4 key购买 nike

我不知道如何解决这种情况需要一些指导我有一个场景,在添加每个子节点时我必须更新根节点的star列字段到目前为止,我已经完成了此操作,它更新了直接链接节点的 star 列,而不是像 Aroot 那样的完整路径>B C 和 D子级,然后 A star 列现在会更新,如果 C BD 在它们下面添加了一些内容 A 星列没有更新,我对触发器和 sql 的了解较少,我陷入困境我已经搜索了很多但没有找到解决方案,这里是 sql 的方法,到目前为止它正在完成所有这一切。

DELIMITER @@
DROP PROCEDURE p_prefix_nodes_add_new_paths_after_insert @@
CREATE PROCEDURE cvs.p_prefix_nodes_add_new_paths_after_insert
(
param_node_new_id INT UNSIGNED,
param_node_parent_id INT UNSIGNED
)
BEGIN

INSERT INTO `prefix_nodes_paths` (
`ancestor_id`,
`descendant_id`,
`path_length`
)
SELECT
`ancestor_id`,
`param_node_new_id`,
`path_length` + 1
FROM
`prefix_nodes_paths`
WHERE `descendant_id` = `param_node_parent_id`
UNION
ALL
SELECT
`param_node_new_id`,
`param_node_new_id`,
0 ;
Update prefix_nodes_paths
Set stars=stars+1
where ancestor_id=param_node_parent_id;
END @@
DELIMITER ;

最佳答案

我建议您使用nested set model将树状数据存储在 SQL 数据库中的技术。当您尝试获取特定节点的后代或祖先时,您的查询将变得更加方便、更快和更简单。

关于mysql - 添加新条目时更新星形列直到根节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29587886/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com