oracle触发器里根据条件触发不同的操作

如题我有这样一个表T1中有字段name和age如果name的值发生了改变我就将以前的name值和新的name值写入表N中如果age的值发生了改变我就将以前的age和新的a... 如题 我有这样一个表 T1中有字段 name 和age
如果name的值发生了改变 我就将 以前的name值和新的name值写入表N中
如果age的值发生了改变 我就将 以前的age和新的age写入到A表中

这样一个对T1表的触发器怎么写?
展开
 我来答
radgesoft
推荐于2018-04-13 · TA获得超过173个赞
知道小有建树答主
回答量:312
采纳率:100%
帮助的人:168万
展开全部
CREATE OR REPLACE TRIGGER TRI_T1
AFTER UPDATE ON t1
FOR EACH ROW
BEGIN
IF :OLD.name<>:NEW.nameTHEN
insert into N values(:OLD.name,:NEW.name);
END IF;
IF :OLD.age<>:NEW.age THEN
insert into A values(:OLD.age,:NEW.age);
END IF;
END;
/
手机用户10525
2011-05-04 · 超过58用户采纳过TA的回答
知道答主
回答量:268
采纳率:100%
帮助的人:140万
展开全部
1、你的建表文中还是?
还是我按照和理解了。
2、修改如下
CREATE OR REPLACE TRIGGER NAME_STUCLANAME
BEFORE INSERT ON STUDENT
FOR EACH ROW
DECLARE
TEMPCLANAME VARCHAR(10);
BEGIN
TEMPCLANAME := NULL;
SELECT CLANAME INTO TEMPCLANAME FROM CLASS WHERE CLANO =SUBSTR(:NEW.STUNO,1,8);
IF TEMPCLANAME IS NOT NULL THEN
:NEW.STUCLANAME:=TEMPCLANAME;
ELSE
RAISE_APPLICATION_ERROR(-20001, '您插入的[班级编号]在[班级表]中不存在');
END IF;
END;
/
---
以上,希望对你有所帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bbyyrroonn
2011-05-04 · TA获得超过673个赞
知道小有建树答主
回答量:269
采纳率:0%
帮助的人:167万
展开全部
学习了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式