티스토리 뷰

DB/Oracle

[Oracle] Trigger

gray.yoon 2014. 3. 13. 16:11

프로젝트를 하면서 한테이블과 다른테이블이 연관성이 없었다가 다시 연관성이 생겨 두 테이블이 Sync가 맞아야 할 상황이 왔다.

이때 두 테이블을 똑같이 작업을 하는 방법으로 Trigger를 사용하였다

tb_cctv_info는 메인 table이며, 이 테이블에 데이터가 들어갈 경우 tb_fac_cctv_info라는 테이블에 데이터를 똑같이 작업을하는 Trigger 이다.

 

create trigger cctv_sync
BEFORE insert or update or delete on tb_cctv_info
for each row
BEGIN
IF inserting THEN
insert into tb_fac_cctv_info ( cctv_id, cctv_nm, ip_addr, prt_no, setu_pos, setu_dtm, x_crdnt, y_crdnt)
values ( :new.source_id, :new.source_tag, :new.source_ip, :new.source_port, :new.source_tag, sysdate(), :new.coord_x, :new.coord_y);
ELSIF updating THEN
update tb_fac_cctv_info
set cctv_nm=:new.source_tag,
ip_addr=:new.source_ip,
prt_no=:new.source_port,
setu_pos=:new.source_tag,
setu_dtm=sysdate(),
x_crdnt=:new.coord_x,
y_crdnt=:new.coord_y
WHERE cctv_id =  :new.source_id;
ELSE
DELETE FROM tb_fac_cctv_info where cctv_id = :old.source_id;
END IF;
END;

'DB > Oracle' 카테고리의 다른 글

String to Hex // Hex to String  (0) 2013.04.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함