我有 3 张 table :
- 任务
- 文件夹
- 文件夹任务
任务表将包含所有task_name
,文件夹表将包含folder_name
、task_count
和 Folder Tasks 是一个数据透视表,它将存储 folder_id
和 task_id
。
所有表都具有多对多关系。
我添加了级联删除任务。因此,如果我删除一个任务,那么它将删除所有地方,包括数据透视表。我正在使用 Eloquent 删除删除任务。这工作正常
但是,一旦删除任务,我就需要更新文件夹表中每个文件夹的任务计数。
由于一个任务可以存储在多个文件夹中,因此级联删除任务时很难更新所有文件夹的 task_count
计数。我被困在这里了。
如何更新受影响文件夹的所有 task_count
?
最佳答案
您可以使用mysql触发器。这是示例。
USE `test`;
DELIMITER
$$
CREATE TRIGGER `tasks_ADEL`
AFTER DELETE ON tasks FOR EACH ROW
-- Edit trigger body code below this line. Do not edit lines above this one
BEGIN
update folder as f right join folder_tasks as ft on f.id = ft.folder_id set task_count = task_count + 1 where ft.task_id = OLD.id
END;
$$
在这里您可以找到使用示例https://www.w3resource.com/mysql/mysql-triggers.php#MTAD
关于mysql - 通过 eloquent 在 Laravel 中更新文件夹计数级联删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56326487/