oracle怎么建立一个触发器在表插入数据的时候更新表的另一个字段

触发器是通过了,但是不更新表字段... 触发器是通过了,但是不更新表字段 展开
 我来答
山水阿锐
推荐于2018-03-28 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
BEGIN
UPDATE T_SALARY_SALARIESDATA SET T_SALARY_SALARIESDATA.text1 =1 WHERE Bdgagency:= OLD.Bdgagency;
END;
上面这段代码的逻辑是错误的,错误内容有两点:
1. 不管bdgagency列是否有变化,都会将T_SALARY_SALARIESDATA.text1设为1
2. 使用bdgagency列做为where条件,需要保证Bdgagency是表T_SALARY_SALARIESDATA的主键或者唯一索引。否则请使用主键做为where条件,以免更新了其它不应当更新的数据。

SQL code?

-- 假设两表中都存在列R_ID,且该列为主键

if ( OLD.Bdgagency <> NEW.Bdgagency) then
UPDATE T_SALARY_SALARIESDATA SET T_SALARY_SALARIESDATA.text1 =1 WHERE R_ID = OLD.R_ID;
end if;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式