我有一个大约 1500 行的 postgresql 表,模型是基于 Left 和 Right 字段的“Modified Preorder Tree Traversal”结构。我想在其间插入许多行,但我不确定在插入行间时如何计算多行的 level、rightindex 和 leftindex 列值。
我相信对于单行我们可以通过下面的代码来实现这一点,
SELECT @myRight := rgt FROM tablename
UPDATE tablename SET rgt = rgt + 2 WHERE rgt > @myRight;
UPDATE tablename SET lft = lft + 2 WHERE lft > @myRight;
INSERT INTO tablename(name, lft, rgt)
VALUES('GAME CONSOLES', @myRight + 1, @myRight + 2);
但是我们如何才能为大表的多次更新做到这一点。
如果我需要任何进一步的信息,请告诉我。