일반적인 트리거는 테이블에 이벤트 특정 한 개의 작업 (삭제 혹은 입력, 변경)을 하게 되어 있다.
그러나 9.7 FixPack4 부터는 여러 작업을 수행할 수 있도록 트리거 기능이 개선되었다.
업무에 따라, 회사마다 정책에 의해서 트리거를 쓸 수도 있고, 안쓸수도 있지만 “특정 이벤트에 여러 작업을 해야 되는 요건”이 있다면 multi action trigger를 검토할 필요성이 있을 것 같다.
1번 테이블에 데이터가 입력되거나 변경되는 경우, 2번 테이블에 insert 및 update 작업이 기록되도록 하여 multi action이 적용하는지를 테스트 해 보았다.
테이블 생성 db2 “create table t1 (c1 integer, c2 timestamp)”
트리거 생성 db2 +p -td"@" -v << EOF connect to sample @ CREATE OR REPLACE TRIGGER tr1 IF (UPDATING ) THEN |
1번 테이블에 데이터 입력 및 2번 테이블의 insert 실행기록 확인
$ db2 "insert into t1 values (1,current timestamp),(2,current timestamp)" DB20000I The SQL command completed successfully. $ db2 "select * from t2" C1 C2 2 record(s) selected. |
1번 테이블의 데이터 변경 및 2번 테이블의 update 실행기록 확인
$ db2 "update t1 set c1=11 where c1 =1" DB20000I The SQL command completed successfully. $ db2 "select * from t2" C1 C2 3 record(s) selected. |
'Note' 카테고리의 다른 글
[관리] 접속한 Application 개수 및 정보 확인 (0) | 2012.09.10 |
---|---|
[개발] 오라클 정규식 함수의 이관 (0) | 2012.09.10 |
[관리] Offline DB 백업의 복원 (0) | 2012.04.23 |
[이관] IBM에서 제공하는 DBMS Migration 도구들 (0) | 2012.03.20 |
[관리] Application에서 실행 중인 SQL 확인 (0) | 2012.03.12 |