數據量大的時候爲了提升程序運行效率會用到緩存,爲保證緩存中的數據是最新的,就須要及時更新緩存。數據庫
利用數據庫觸發器在表有改動(增刪改)的時候記錄操做時間,下次比對緩存時只須要比較時間戳一致便可判斷緩存是否須要更新。緩存
關鍵字: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;