0

特定の ID の親のすべての ID を返すストアド プロシージャを作成しようとしています。これが私がこれまでに得たものであり、すべての意図と目的のために、テーブルは id と ParentID の 2 つの列で構成されています。現在のコードの結果は、テーブルから ParentID を取得していないようです。渡された ID を一時テーブルに 2 回追加しようとして失敗します。どこで私は間違えましたか?

CREATE PROCEDURE `mydb`.`Test` (IN id int)
BEGIN
DECLARE parentId INT;
DECLARE n INT;

  DROP TEMPORARY TABLE IF EXISTS _1067_parents;

 CREATE TEMPORARY TABLE _1067_parents (
node_id INT NOT NULL PRIMARY KEY
  );
set n = 0;
set parentId := id;

get_parents_loop: LOOP
     set parentId := (select ParentID from mydb.myTable where TDOID = parentId);

    IF parentId is NULL THEN
      LEAVE get_parents_loop;
    END IF;

    INSERT INTO _1067_parents(node_id) Values (parentId);

END LOOP get_parents_loop;

 SELECT *
    FROM _1067_parents;

end
4

1 に答える 1