【发布时间】:2012-05-21 12:29:52
【问题描述】:
我有桌子:
id parent name
现在,父字段是其他行的 id。 正如 MySQL 所说,我不能为此使用触发器:
无法更新存储函数/触发器中的表“products_categories”,因为它已被调用此存储函数/触发器的语句使用。
一个过程应该如何删除所有具有类似已删除 id 的父项的行?
【问题讨论】:
-
您只需要孩子还是所有后代?
-
@srini.venigalla 假设我删除了 id=40。然后触发器/程序应该删除所有具有 parent=40 的行。当它删除所有其他人时,触发器/程序也应该适用于他们。
-
@rzeka 您的模型称为邻接模型。遍历邻接模型中的层次结构需要底层数据库支持某种递归,而 mysql 不支持。嵌套模型会更好地为您服务。遍历嵌套模型不需要递归。请谷歌搜索“Celko 嵌套模型删除行”,您将获得大量文献。还有一个从 Adjaceny Model 创建嵌套模型的过程。
标签: mysql procedure delete-row