Oracle觸發器

數據量大的時候爲了提升程序運行效率會用到緩存,爲保證緩存中的數據是最新的,就須要及時更新緩存。數據庫

利用數據庫觸發器在表有改動(增刪改)的時候記錄操做時間,下次比對緩存時只須要比較時間戳一致便可判斷緩存是否須要更新。緩存

關鍵字:declare, :new 和 :old,新增修改時 :new 可用,刪除時 :old 可用。spa

示例:code

--新增修改觸發器
create or replace trigger tri_SYS_ORG_InsertOrModify
after insert or update on sys_org_multilang
for each row
  declare
  rowlen number;
begin
  select c into rowlen from (select count(1) c from sys_dbcache_time t where t.db_key='SYS_ORG' and t.lang_type=:new.DICT_LANG_TYPE);
 if rowlen>0 then
     update sys_dbcache_time t set t.op_modify_time=sysdate where t.db_key='SYS_ORG' and t.lang_type=:new.DICT_LANG_TYPE;
      else
         insert into sys_dbcache_time(db_key,lang_type,op_modify_time) values('SYS_ORG',:new.DICT_LANG_TYPE,sysdate) ;
  end if;
end;

--刪除觸發器
create or replace trigger tri_SYS_ORG_Del
after delete on sys_org_multilang
for each row
begin
     update sys_dbcache_time t set t.op_modify_time=sysdate where t.db_key='SYS_ORG' and t.lang_type=:old.DICT_LANG_TYPE;
end;
相關文章
相關標籤/搜索