티스토리 뷰
프로젝트를 하면서 한테이블과 다른테이블이 연관성이 없었다가 다시 연관성이 생겨 두 테이블이 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 |
---|