作为我被要求做的令人讨厌的 hack 的一部分,我需要修改触发器以更新表中的关联记录 - 但我收到了 mutating table 错误。
数据如下所示:
roster table
Id person_id route_id active_ind
1 1 1 Y
2 2 1 Y
3 3 2 Y
4 4 2 Y
如果 person_id = 1 的 active_ind 设置为 N,我需要将与同一路线(route_id = 1)关联的其他人的 active_id 也设置为 N。
有一个当前触发器(更新后)可以更新其他可以正常工作的路由关联表。添加以下代码时,出现变异表错误:
update roster r
set r.active_ind = 'N'
where r.route_id = :new.route_id
and r.id != :new.id
and r.active_ind = 'Y';
这是因为我试图在更新过程中更新表。任何人都可以提出解决方案吗?