我有 2 个表:类别表和产品表。
与外部键没有直接关系,因此在 SQL 中没有依赖关系。Products 表包含一个名为 category_id 的字段,只是为了在我的视图中与 categories 表进行连接。
这里的问题:
当我在 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 问题还是我没有考虑到的问题?