안녕하세요
고수님들께
트리거 관련 질문을 좀 하려고 합니다.
table a ( aa, bb, cc, dd, ee, ff, gg, hh)
table b ( aa, 11, 22, 33, 44, 55, 66, 77) 이 테이블들에
트랜잭션 발생 후 a.aa = b.aa 조인을 걸어 insert table tri_tab(aa, cc, 33, ff, 55, gg, 77) 이 테이블에 insert 를 하려고 합니다.
table a,b 중에 aa, cc, 33, ff, 55, gg, 77
이 컬럼의 트랜잭션이 발생했을때만 트리거가 작동해 트리거 테이블에 insert 하려고 합니다.
고수님들께 조언 부탁드립니다.
감사합니다.
CREATE TRIGGER tr_table_a AFTER INSERT OR UPDATE OF cc, ff, gg ON table_a DECLARE v_cc table_a.cc%TYPE := :NEW.cc; v_ff table_a.ff%TYPE := :NEW.ff; v_gg table_a.gg%TYPE := :NEW.gg; v_33 table_b.33%TYPE; v_55 table_b.55%TYPE; v_77 table_b.77%TYPE; BEGIN BEGIN SELECT 33, 55, 77 INTO v_33, v_55, v_77 FROM table_b WHERE aa = :NEW.aa ; EXCEPTION WHEN NO_DATA_FOUND THEN null; END; INSERT INTO tri_tab(aa, cc, 33, ff, 55, gg, 77) VALUES (:NEW.aa, v_cc, v_33, v_ff, v_55, v_gg, v_77) END; / CREATE TRIGGER tr_table_b AFTER INSERT OR UPDATE OF 33, 55, 77 ON table_b DECLARE v_cc table_a.cc%TYPE; v_ff table_a.ff%TYPE; v_gg table_a.gg%TYPE; v_33 table_b.33%TYPE := :NEW.33; v_55 table_b.55%TYPE := :NEW.55; v_77 table_b.77%TYPE := :NEW.77; BEGIN BEGIN SELECT cc, ff, gg INTO v_cc, v_ff, v_gg FROM table_a WHERE aa = :NEW.aa ; EXCEPTION WHEN NO_DATA_FOUND THEN null; END; INSERT INTO tri_tab(aa, cc, 33, ff, 55, gg, 77) VALUES (:NEW.aa, v_cc, v_33, v_ff, v_55, v_gg, v_77) END; /