我有2个表:类别表和产品表。
与外部键没有直接关系,因此SQL中没有依赖关系。 Products表包含一个名为category_id的字段,只是为了在我的视图中与类别表进行连接。
问题在于:
当我在php中执行此过程时:
begin
SELECT @lft := lft, @rgt := rgt, @wdt := rgt - lft + 1
FROM categorie
WHERE id = id_categoria;
DELETE FROM categorie WHERE lft BETWEEN @lft AND @rgt;
UPDATE categorie SET rgt = rgt - @wdt WHERE rgt > @rgt;
UPDATE categorie SET lft = lft - @wdt WHERE lft > @rgt;
end
正确删除了该类别及其所有叶子,但也删除了包含在“category_id”字段中的其中一个已删除类别ID的产品行!
这是一个SQL问题还是我没有考虑的事情?