민서네집

Oracle Trigger mutating trigger 에러가 나는 경우 해결책 본문

Database/Oracle

Oracle Trigger mutating trigger 에러가 나는 경우 해결책

브라이언7 2013. 10. 15. 16:53

[출처] http://decipherinfosys.wordpress.com/2009/06/22/mutating-tabletrigger-error-and-how-to-resolve-it/


읽어보니 대략 다음과 같은 내용이다.


for each row 를 사용해서 row level 의 trigger 를 정의할 때

전체 테이블에서 변경 중인 정보를 select 경우.

오라클 DB 는 불일치하는 데이터를 조회하지 않기 위해 이런 trigger 가 실행 안되도록 한다.


해결 방법은 3가지가 있는데,

row level trigger 를 statement level 로 바꾸어 주는 방법과

AUTONOMOUS_TRANSACTION 으로 선언하는 방법, - 이 방법은 부정확한 조회값을 준다고 한다.

그리고 오라클 11g 에서는 

COMPOUND TRIGGER 로 선언하면 된다고 한다.


자세한 것은 원문을 읽어 보세요.


[참고] http://oracle-error.blogspot.kr/2008/04/ora-04091-table-is-mutating-trigger.html


Comments