一个Oracle触发器里多个if运行的问题

我写了个触发器,在某条记录更新时,获取到更新的字段名,原始值,新值,存到另一个表里.关键代码如下:IF:NEW.aaa=:OLD.aaaTHEN(aaa是字段名,aaa里... 我写了个触发器, 在某条记录更新时,获取到更新的字段名,原始值,新值, 存到另一个表里.
关键代码如下:
IF :NEW.aaa=:OLD.aaa THEN (aaa是字段名, aaa里会有Null值)
SELECT 1 into tmp0 FROM Table_a; (这句没实际意义 ^_^)
ELSE
INSERT INTO Table_a_change (
id,
name,
oldvalue,
newvalue
)
values(
:OLD.id
'aaa',
:OLD.aaa,
:NEW.aaa
);
END IF;

IF :NEW.bbb=:OLD.bbb THEN (bbb是字段名, bbb里会有Null值)
SELECT 1 into tmp0 FROM Table_a; (这句没实际意义 ^_^)
ELSE
INSERT INTO Table_a_change (
id,
name,
oldvalue,
newvalue
)
values(
:OLD.id
'bbb',
:OLD.bbb,
:NEW.bbb
);
END IF;

问题来了.
如果aaa字段和bbb字段都被更新, 那么这两个if里的insert都能运行,能添加记录. 如果aaa字段没有被更新, 不管bbb字段有没有被更新, 第二个if里的insert不能运行(不知道能不能运行,反正没看到添加的记录). 不知道为什么, 怎么样能让第二个if里的insert也运行呢?
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
king7788520
2011-12-06 · TA获得超过262个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:150万
展开全部
这位同学,触发事件能不能发出来看一下,最关键的地方你不给我看,我怎么帮你啊~
还有第二个INSERT的表没有错吧,是Table_a_change 吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式