我有两个表:“产品”和“产品组”。
仅当后者包含最多一个子组时,才允许删除层次结构的根。在这种情况下,子组成为层次结构的根。先前分配给已删除的根的所有产品都分配给层次结构的新根。
不允许删除最后一个分配产品的组。
我该如何实现?
create or replace procedure pDeleteProductGroup(p_code VARCHAR2) IS
v_var "ProductGroups"."code"%type;
begin
select func_parent(p_code) into v_var
from "ProductGroups"
where "code"=p_code;
update "ProductGroups"
set "parentCode"=v_var
where "code"=p_code;
update "Products"
set "groupCode"=v_var
where "groupCode"=p_code;
end;
create or replace FUNCTION func_parent (p_groupCode VARCHAR2)
RETURN VARCHAR2
IS
v_var "ProductGroups"."parentCode"%type;
BEGIN
select "parentCode" into v_var from "ProductGroups"
where p_groupCode="code";
if v_var is null
then v_var:=null;
end if;
return v_var;
END;
答案 0 :(得分:0)
如果我对您的理解正确,则除了
,您无需做任何特殊的操作如果这不是您要的内容,请提供测试用例并说明您要执行的操作以及要获得的结果。