作为讨厌的黑客的一部分,我被要求做,我需要修改一个触发器来更新表中的相关记录 - 但是我得到了变异表错误。
数据如下所示:
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,我需要将与同一路由相关联的其他人的active_id(route_id = 1)也设置为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';
这是因为我正在尝试在更新过程中更新表。 有人可以提出解决方案吗?