文章目录
触发器是什么?
触发器可以与表进行绑定,当表做出Delete、Update、Insert这些对表进行改动的操作时,会触发触发器内的逻辑,常用有打日志输出等。。
PGSQL在创建的触发器的方式与Oracle有些不同(查阅文档未找到更快捷的方式);
Oracle创建触发器的方式:
CREATE OR REPLACE TRIGGER meta_log_insert_trigger
AFTER INSERT OR UPDATE OR DELETE ON ly_ysj_yw_bxx --这里声明触发器绑定的表
for each row
DECLARE
bgzt varchar2(24);
BEGIN
-- 这里判断触发的类型(Delete、Update、Insert)
IF UPDATING THEN
bgzt := 'U';
ELSIF DELETING THEN
bgzt := 'D';
ELSIF INSERTING THEN
bgzt := 'I';
END IF;
-- 触发器逻辑
IF DELETING THEN
insert into ly_ysj_yw_bxx_log(bbh,kbh,wlblx,bywmc,bms,jls,bzxx,sqr,bsqr,sfyxzsq,qxlx,ywblx,sfgl,glyy,czr,czsj,ssbkjmc,bzt,ysbm,ysbzwm,sfyyfx,shr,shsj,bgzt)
values(:old.bbh,:old.kbh,:old.wlblx,:old.bywmc,:old.bms,:old.jls
,:old.bzxx,:old.sqr,:old.bsqr,:old.sfyxzsq,:old.qxlx,:old.ywblx,:old.sfgl,:old.glyy
,:old.czr,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),:old.ssbkjmc,:old.bzt,:old.ysbm,:old.ysbzwm,:old.sfyyfx,:old.shr,:old.shsj,bgzt);
ELSE
insert into ly_ysj_yw_bxx_log(bbh,kbh,wlblx,bywmc,bms,jls,bzxx,sqr,bsqr,sfyxzsq,qxlx,ywblx,sfgl,glyy,czr,czsj,ssbkjmc,bzt,ysbm,ysbzwm,sfyyfx,shr,shsj,bgzt)
values(:new.bbh,:new