1

我有 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 问题还是我没有考虑到的问题?

4

0 回答 0