1

データ マクロを使用してクロージャ テーブルを更新しようとしています。これには、新しいレコードがメイン テーブルに挿入されるたびに次のコードを実行する必要があります。

INSERT INTO tblClosure (parent_id, child_id, depth)
SELECT p.parent_id, c.child_id, p.depth+c.depth+1
FROM tblClosure AS p, tblClosure AS c
WHERE p.child_id=$PARENT_ID and c.parent_id=$CHILD_ID;

ご覧のとおり、ネストされたループを使用してこの操作を実行できます。

Iterate through tblClosure
For each record p with child_id = $PARENT_ID {
    Iterate through tblClosure
    For each record c with parent_id = $CHILD_ID {
        Insert (p.parent_id, c.child_id, p.depth + c.depth + 1) into tblClosure
    }
}

メイン テーブル (tblNodes) とクロージャ テーブル (tblClosure) の両方がバックエンド データベースに格納されているため、データ マクロで必要なことを実行できるはずです。

データ マクロには、関数Create Record (in...)およびFor Each Record (in...)あるようです。しかし、私はその2番目のものをまったく発火させることができません。

これは私のコードです(パラメータとしてtemp_nodeandを定義しました):temp_parent

ここに画像の説明を入力

4

1 に答える 1