当前位置: 代码迷 >> Oracle开发 >> oracle 触发器 实现更新一张报表时向另一张表格插入数据
  详细解决方案

oracle 触发器 实现更新一张报表时向另一张表格插入数据

热度:374   发布时间:2016-04-24 06:43:02.0
oracle 触发器 实现更新一张表格时向另一张表格插入数据
不好意思、有个触发器修改了一下午还是 显示“触发器无效且未通过验证”、希望好心人能够帮我解答下,先谢谢了!
现在有2张表格:message 和leave_apply
message结构如图。
leave_apply结构如图。
我想要实现,当update leave_apply表格中的state列时,自动向message表插入一条数据。messageNum设置为主键自增,content的内容为“同学你好,你的申请单” 与state(更新之后的值)拼接而成,applyNum和studentNum为leave_apply中的applynum和studentNum,time为系统当前时间。

CREATE SEQUENCE Increase_Sequence6
 INCREMENT BY 1     
     START WITH 1     
     NOMAXVALUE        
     NOCYCLE            
     CACHE 10; 
     
CREATE TRIGGER tri_update6 after
update of state ON  leave_apply FOR EACH ROW
begin
select to_char(Increase_Sequence6.nextval) into:message(messageNum) from dual;
insert into message(content) values("同学你好,你的申请单"+:New.state)
insert into message(applyNum) values(leave_apply(applyNum))
insert into message(studentnum) values(leave_apply(studentNum))
insert into message(time) values(sysdate)
 

end;

commit

第一次发帖,本不愿做伸手党的,确实自己实力有限,谢谢——
------解决方案--------------------
引用:
不好意思、有个触发器修改了一下午还是 显示“触发器无效且未通过验证”、希望好心人能够帮我解答下,先谢谢了!
现在有2张表格:message 和leave_apply
message结构如图。
leave_apply结构如图。
我想要实现,当update leave_apply表格中的state列时,自动向message表插入一条数据。messageNum设置为主键自增,content的内容为“同学你好,你的申请单” 与state(更新之后的值)拼接而成,applyNum和studentNum为leave_apply中的applynum和studentNum,time为系统当前时间。

CREATE SEQUENCE Increase_Sequence6
 INCREMENT BY 1     
     START WITH 1     
     NOMAXVALUE        
     NOCYCLE            
     CACHE 10; 
     
CREATE TRIGGER tri_update6 after
update of state ON  leave_apply FOR EACH ROW
begin
select to_char(Increase_Sequence6.nextval) into:message(messageNum) from dual;
insert into message(content) values("同学你好,你的申请单"+:New.state)
insert into message(applyNum) values(leave_apply(applyNum))
insert into message(studentnum) values(leave_apply(studentNum))
insert into message(time) values(sysdate)
 

end;

commit

第一次发帖,本不愿做伸手党的,确实自己实力有限,谢谢——



CREATE or replace TRIGGER tri_update6
  after update of state ON leave_apply
  FOR EACH ROW
declare
  i number;
begin
  select Increase_Sequence6.nextval into i from dual;
  insert into message
  values
    (i,
     '同学你好,你的申请单' 
------解决方案--------------------
 :new.state,
     :old.applynum,
     :old.studentnum,
     sysdate);
end;
  相关解决方案