我有一个在其中存储父级和子级记录的表.
我正在尝试创建一个触发器,该触发器将在删除父级时删除所有子级记录:
Delete From tbl Where ParentId = OLD.Id
虽然我可以成功保存触发器,但是在删除时出现此错误:
ERROR 1442: Can’t update table ‘tbl′ in stored function/trigger because it is already used by statement which invoked this
我究竟做错了什么?
解决方法:
看来这是not possible:
You cannot DELETE rows in the table
that activated trigger.
您可能会考虑的其他一些选择:
>编写删除父行和子行的应用程序逻辑,并在每次要删除父记录而不是直接删除父记录时调用此应用程序逻辑.
>在同一表上级联删除关系为appears to be possible.
>清理过程,通常会清除孤立的子记录.
>(由@Chris建议)通过添加另一个表将子记录与父记录分开.