約 1500 行の postgresql テーブルがあり、モデルは左フィールドと右フィールドに基づく「変更されたプレオーダー ツリー トラバーサル」構造です。間に多くの行を挿入したいのですが、行の間に挿入するときに、複数の行のレベル、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);
しかし、大きなテーブルの複数の更新に対してこれを行うにはどうすればよいでしょうか。
私の側からさらに情報が必要な場合はお知らせください。