create or replace trigger trigger_admission before update on a for each row when(old.State=106 or old.State=9) begin update b set State=old.State=106 end;
create or replace trigger trigger_admission before update on a for each row when(old.State=106 or old.State=9) begin update b set State=old.State end;
create or replace TRIGGER TRIGGER1 AFTER UPDATE OF STATE ON A for each row BEGIN CASE WHEN :new.state = 1006 THEN update b set state = 9000 where b.id = :old.id; WHEN :new.state = 900 THEN update b set state = 1000 where b.id = :old.id; ELSE null; END CASE; --如果要保证A和B的state一致,删掉上面的CASE,也成下面的 --update b set state = :new.state where b.id = :old.id END;
create or replace trigger trigger_admission before update on a for each row when(old.State=1006 or old.State=9000) begin update b set State=:old.State where id=:old.id; end;
before update on a
for each row when(old.State=106 or old.State=9)
begin
update b set State=old.State=106
end;
before update on a
for each row when(old.State=106 or old.State=9)
begin
update b set State=old.State
end;
ID(编码)
Name(名称)
state(状态)B表结构
ID(编码)
Name(名称)
state(状态)
re(备注)现在要求写一触发器,根据A表的状态(比如 1006,9000,1000几个状态)触发改变B表的状态。
create or replace
TRIGGER TRIGGER1
AFTER UPDATE OF STATE ON A
for each row
BEGIN
CASE
WHEN :new.state = 1006 THEN update b set state = 9000 where b.id = :old.id;
WHEN :new.state = 900 THEN update b set state = 1000 where b.id = :old.id;
ELSE
null;
END CASE;
--如果要保证A和B的state一致,删掉上面的CASE,也成下面的
--update b set state = :new.state where b.id = :old.id
END;
before update on a
for each row when(old.State=1006 or old.State=9000)
begin
update b set State=:old.State where id=:old.id;
end;