《数据库系统实验报告 触发器.docx》由会员分享,可在线阅读,更多相关《数据库系统实验报告 触发器.docx(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、实验4 触发器1、 通过序列和触发器实现借阅表中借阅流水号字段的自动递增。Create or replace sequence bwnum_idMinvalue 1Maxvalue 1.0E28Start with 1Increment by 1Cache 20;Create or Replace Trigger tri_bwnum_idBefore Insert On borrowFor Each Row Begin Select bwnum_id.Nextval Into :new.bwnumFrom DUAL; End;2、 通过序列和触发器实现预约表中预约流水号字段的自动递增Creat
2、e sequence pnum_idMinvalue 1Maxvalue 1.0E28Start with 1Increment by 1Cache 20;Create or Replace Trigger tri_pnum_idBefore Insert On preborrowFor Each Row Begin Select pnum_id.Nextval Into :new.pnumFrom DUAL; End;3、 修改实验三借书功能的存储过程。 该存储过程要求: (1)借书时输入借书证号,图书编号。(即该函数有2个输入参数) (2)借书时,借书日期为系统时间。 *该存储过程主体部分
3、只有insert into语句。create or replace Procedure p_borrow(P_BNUM IN BORROW.BNUM%TYPE,P_RNUM IN BORROW.RNUM%TYPE)asbegininsertinto BORROW (BNUM,RNUM,BDATE)values(P_BNUM,P_RNUM,TO_CHAR(SYSDATE(),YY/MM/DD);commit;end;4、建立与借书存储过程相对应的触发器,当借阅表中加入借阅信息时,该触发器触发,自动修改所借图书的是否借出改为是。Create or Replace Trigger tri_borro
4、w_insertAfter Insert On borrowFor Each Row Begin update book set bborrow=是 where bnum=:new.bnum; End;5、 修改实验三还书功能的存储过程。该存储过程要求:(1)还书时输入借书证号,图书编号。(即该函数有2个输入参数)(2)还书时,还书日期为系统时间。*该存储过程主体部分只有一条UPDATE语句。Create or replace Procedure p_return(P_BNUM IN BORROW.BNUM%TYPE,P_BMNUM IN BORROW.BMNUM%TYPE)asbeginupdate borrowset rdate=to_char(sysdate,yyyy/mm/dd) where bnum=p_bnum and bmnum=p_bmnum;commit;end;6、建立与还书存储过程相对应的触发器,当借阅表中填入还书日期时,该触发器触发,自动修改所还图书的是否借出为否。Create or Replace Trigger tri_borrow_update After update On borrow For Each Row Begin update book set bborrow=否 where bnum=:new.bnum; End;