我想确定,我的数据表中没有孩子的孩子。因此,如果我有一个父项 A 和一个子项 B (B.parent = A),并且我尝试将子项 C 插入到项 B (C.parent = B) 中,则此触发器必须阻止它并且将 C 的 parent_id 设置为 A (C.parent = A)。我的桌子上只需要两层(父子),不需要爷爷。
有我的样本,它不起作用:
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