而不是触发器没有更新我的 table
Instead of trigger is not updating my table
我必须检查 table 上的新状态,并且根据这个状态,我需要更新与第一个相关的另一个 table。
原table = origin_table
查看=table_view
视图是使用简单的 select 创建的:
create or replace view table_view as
select * from table
我的触发器基本上是:
create or replace trigger verify_status
instead of update on table_view
referencing old as old new as new
for each row
begin
if :new.status in ('A', 'P') then
update origin_table set status = 'CP' where cod = :new.cod;
end if;
end;
但是我的 origin_table 没有更新,有什么想法吗?
Obs:view_table 是 table 的副本,与 origin_table 有关系,而不是原始 table 的视图。
ObsII:我必须这样做以避免变异 table 错误。
我没有发现您的代码有任何问题,它运行良好。你能查看 dbfiddle link 了解更多详情吗,
https://dbfiddle.uk/?rdbms=oracle_18&fiddle=8bad808cb6d120df37537044081e09b0
我必须检查 table 上的新状态,并且根据这个状态,我需要更新与第一个相关的另一个 table。
原table = origin_table
查看=table_view
视图是使用简单的 select 创建的:
create or replace view table_view as
select * from table
我的触发器基本上是:
create or replace trigger verify_status
instead of update on table_view
referencing old as old new as new
for each row
begin
if :new.status in ('A', 'P') then
update origin_table set status = 'CP' where cod = :new.cod;
end if;
end;
但是我的 origin_table 没有更新,有什么想法吗?
Obs:view_table 是 table 的副本,与 origin_table 有关系,而不是原始 table 的视图。
ObsII:我必须这样做以避免变异 table 错误。
我没有发现您的代码有任何问题,它运行良好。你能查看 dbfiddle link 了解更多详情吗,
https://dbfiddle.uk/?rdbms=oracle_18&fiddle=8bad808cb6d120df37537044081e09b0