0

对于顶级组的 parentid 为 -1 的组,我有一个基本的父子表(parentid int,childid int)。我想确保组织结构中的更改不会破坏链条,如果确实如此,请修复它。这意味着如果存在顶级 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 组带到顶部。

4

1 回答 1

1

所以你需要为那些parentid本身不是childids的s创建一组行吗?

INSERT INTO tbl_x (parentid, childid)
SELECT -1, parentid as childid
FROM tbl_x
WHERE parentid NOT IN (SELECT childid FROM tbl_x)

我认为应该这样做。

于 2012-09-17T11:13:49.337 回答