繁体   English   中英

有什么方法可以递归更新SQL中的树吗?

[英]Any way to recursively update a tree in SQL?

我有一个代表一堆树的数据库表。 前三列是如下所示的GUID:

NODE_ID (PK)
PARENT_NODE_ID (FK to same table, references NODE_ID)
TREE_ID (FK to another table)

可以将节点移动到另一棵树。 棘手的部分是将其所有子节点都包含在其中。 这需要递归更新。 (是的,我首先意识到这是一个不好的设计。我没有设计它。我只需要维护它,就不能更改数据库架构。)

如果我可以用SQL作为存储过程进行更新,那就太好了。 但是我不考虑如何在不使用游标的情况下实现集合逻辑中所需的递归操作。 有人知道实现这一目标的合理简单方法吗?

如果使用的是Postgres或MS SQL 2005,则可以使用递归更新,否则,您可能要考虑使用邻接表以外的方法。 几周前,我看了一个有关这些问题并存储分层数据的演示。 这里是一个链接:

http://www.slideshare.net/billkarwin/practical-object-oriented-models-in-sql

从幻灯片40开始

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM