oracle触发器发现a表的p字段更新到123数值后将其字段更新到456

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle触发器发现a表的p字段更新到123数值后将其字段更新到456相关的知识,希望对你有一定的参考价值。

新建一个触发器,现有个一表aaa 里面有个p字段,在update 表aaa的p字段值到123后触发器将自动更新表aaa的p字段到456
或则在第一次update时就将123替换成456也行

参考技术A CREATE OR REPLACE TRIGGER test1AFTER UPDATE ON aaa FOR EACH ROWBEGIN update aaa set p = 456 where id = old.id and p=123 END;

Oracle表的更新触发器问题,更新本表的字段。

现有以表TABLE 有五个字段分别为:INDX,NAME,NAME1,NAME2,FULLNAME,其中INDX为主键,现在更新TABLE后触发,使得FULLNAME的值等于NAME,NAME1,NAME2相加,怎么建触发器

create or replace trigger tr_tb
before insert or update on tb
for each row
begin
FULLNAME:=:new.NAME+:new.NAME1+:new.NAME2;
end;追问

假如增加判断,如果NAME的值为“A”,则重新赋值为“B”,NAME1的值为“A” ,则重新赋值为“B”,NAME2的值为“A”的时候,则重新赋值为“B”,此时,FULLNAME怎么弄?

追答

create or replace trigger tr_tb
before insert or update on tb
for each row
begin
FULLNAME:=decode(:new.NAME,'A','B',:new.NAME)+decode(:new.NAME1,'A','B',:new.NAME1)+decode(:new.NAME2,'A','B',:new.NAME2);
end;

参考技术A 程序可以解决的问题,千万别弄什么触发器,以后维护的成本会很大的

以上是关于oracle触发器发现a表的p字段更新到123数值后将其字段更新到456的主要内容,如果未能解决你的问题,请参考以下文章

oracle触发器自身表更新时,怎么拿到别的表字段数据更新自身表的某个字段?

Oracle表的更新触发器问题,更新本表的字段。

oracle update触发器如何获取被修改的字段

触发器处理表更新

SQL间的两个数据库表的同步更新

sql server 触发器 从一个表添加到另个表是否两个表对应的字段必须相同呢