CREATE OR REPLACE TRIGGER triger_test AFTER UPDATE ON dept FOR EACH ROW BEGIN DBMS_OUTPUT.PUT_LINE('변경 전 컬럼 값 : ' || : old.dname); DBMS_OUTPUT.PUT_LINE('변경 후 컬럼 값 : ' || : new.dname); --이력테이블에 인서트 END; /
트리거 구조는 대충 위 처럼 되어있습니다
프로그래밍 단에서
dept 에 업데이트가 여러건 일어나는 구조입니다
트랜젝션 시작
FOR(반복문) {
DETE 테이블 업데이트 프로시저 호출
}
오류 없을시 커밋
오류 있는경우 롤백
위와 같은 로직해서..
트리거가 실행되는 시점을 알고싶습니다.
커밋일때 실행되나요?
아니면 DETE 테이블 업데이트 프로시저 호출 했을때... 업데이트 구문 이 끝나자 마자 실행되나요
전자이면 에러시 롤백때 트리거에서 입력된 이력 데이터도 같이 롤백되나요??
도움 부탁드립니다