oracle 触发器插入和更新时,怎么操作
两个表:部门表BM负责人FZR两个表关联字段是BM_IDBM表结构BM_ID部门id(主键)BM_CODE部门代码BM_BCODE父级代码BM_MC部门名称BM_IDBM...
两个表 : 部门表 BM 负责人 FZR 两个表关联字段是BM_ID
BM表结构 BM_ID 部门id(主键) BM_CODE 部门代码 BM_BCODE 父级代码 BM_MC 部门名称
BM_ID BM_CODE BM_BCODE BM_MC
1 01 root 信息公司
2 0101 01 总经办
3 0102 01 财务部
4 010201 0102 出纳处
5 010202 0102 会计处
……
FZR 表 表结构 BM_ID 部门id LEADER 负责人
BM_ID LEADER
2 张三
3 李四
3 王二
……
这两个表,现在想设计个触发器,当FZR 表插入一条记录时,关联BM表,有多少子部门插入多少条记录。当FZR 表更新一条记录时,更新子部门(因为存在多个负责人。条件是更改的谁,就更新对应的记录) 展开
BM表结构 BM_ID 部门id(主键) BM_CODE 部门代码 BM_BCODE 父级代码 BM_MC 部门名称
BM_ID BM_CODE BM_BCODE BM_MC
1 01 root 信息公司
2 0101 01 总经办
3 0102 01 财务部
4 010201 0102 出纳处
5 010202 0102 会计处
……
FZR 表 表结构 BM_ID 部门id LEADER 负责人
BM_ID LEADER
2 张三
3 李四
3 王二
……
这两个表,现在想设计个触发器,当FZR 表插入一条记录时,关联BM表,有多少子部门插入多少条记录。当FZR 表更新一条记录时,更新子部门(因为存在多个负责人。条件是更改的谁,就更新对应的记录) 展开
1个回答
展开全部
新手路过···顺便写下···
create or replace trigger tri0
after insert or update on
scott.FZR
begin
if :new.BM_ID!<> :old.BM_ID
insert into BM(BM.BM_ID=FZR.BM_ID) values(:new.BM_ID);
raise_application_error(-20005,'插入了新的记录');
else
update FZR(BM_ID,LEADER)values(:new.BM_ID,:new.LEADER);
raise_application_error(-20005,'更新了新的记录');
end;
/
create or replace trigger tri0
after insert or update on
scott.FZR
begin
if :new.BM_ID!<> :old.BM_ID
insert into BM(BM.BM_ID=FZR.BM_ID) values(:new.BM_ID);
raise_application_error(-20005,'插入了新的记录');
else
update FZR(BM_ID,LEADER)values(:new.BM_ID,:new.LEADER);
raise_application_error(-20005,'更新了新的记录');
end;
/
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询