私のデータテーブルに子供の子供がいないことを確認したいです。したがって、親アイテム A と子アイテム B (B.parent = A) があり、子アイテム C をアイテム B (C.parent = B) に挿入しようとすると、このトリガーはそれを防止する必要があり、 C のparent_id を A に設定します (C.parent = A)。テーブルには 2 つのレベル (親子) しか必要なく、おじいちゃんは必要ありません。
私のサンプルがありますが、うまくいきません:
DELIMITER //
CREATE TRIGGER parent_control BEFORE insert ON reports
FOR EACH ROW BEGIN
IF new.parent_id is not null THEN
set @parent_parent_id = new.parent_id;
SELECT parent_id FROM reports INTO parent_parent_id WHERE report_id = new.parent_id;
IF @parent_parent_id is not null THEN
SET new.parent_id = @parent_parent_id;
END IF;
END IF;
END;
#1327 - 宣言されていない変数:parent_parent_id