Oracle觸發器修改數據時同步執行插入該條數據


原創:lixx 

---從UNWIREDATA 表中查詢數據,如果該表中地磁狀態發生改變(CARDSTATE)執行插入到MAINTABLE 表中
---根據唯一值ERID判斷,如果ERID值存在,修改該條數據中的地磁狀態屬性(CARDSTATE)
create or replace trigger tri_dici after

update of CARDSTATE ON UNWIREDATA FOR EACH ROW

declare
V_NUM number;
BEGIN
----多次查詢時,每次都將v_num設置成為0
V_NUM := 0;
----判斷觸發器 ERID 是否存在
select count(*) into V_NUM from MAINTABLE M where M.ERID = :new.ERID;
----如果存在立即修改CARDSTATE
if V_NUM > 0 then
update MAINTABLE M set M.CARDSTATE=:new.CARDSTATE where M.ERID=:new.erid;
else
---執行插入該數據到MAINTABLE表中
insert into MAINTABLE(UNWIREID,ERID,CARDSTATE,BERTTRYSATE,DATATIME) values(:new.unwireid,:new.erid,:new.cardstate,:new.berttrysate,sysdate);
end if;
END;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM