使用SQL修复损坏的完整性层次结构树

时间:2012-09-17 11:00:17

标签: sql parent-child common-table-expression data-integrity

我有一个基本的父子表(parentid int,childid int)用于顶级组的parentid为-1的组。我想确保组织结构的变化没有打破链条,如果他们这样做,就修复它。意思是如果存在顶级parentid不为-1的子父记录,那么我们需要修复它并将其parentid更改为-1。

例如:

插入tbl_x parentid,childid(-1,1),( - 1,2),(2,3),(2,4),(2,5),(6,7),(7, 8)

会导致组1-5在顶部都以-1结尾,但组7需要修复,因为它最终在顶级6处 - 因此链接以某种方式被破坏并需要从(6,7)到(-1,7)将第7组带到最顶层。

1 个答案:

答案 0 :(得分:1)

所以你需要为那些不是parentid的{​​{1}}的{​​{1}}创建一组行?

childid

我认为应该这样做。