트리거를 정의한 후에는 트리거가 의도한 대로 동작하는지 검사하는 것이 좋다. 종종 트리거가 기대했던 것보다 처리하는데 오랜 시간이 걸리는 경우가 있다. 이는 시스템에 너무 많은 오버헤드를 주거나, 재귀적 루프에 빠졌다는 뜻이다. 이 절에서는 트리거를 디버그하는 몇 가지 방법을 설명한다.
다음은 호출되면 재귀적으로 루프에 빠지도록 정의한 트리거이다. loop 트리거는 목적이 다소 인위적이지만 트리거를 디버그하는 예제로 사용될 수 있다.
CREATE
TRIGGER loop_tgr
BEFORE UPDATE ON participant(gold)
IF new.gold > 0
EXECUTE UPDATE participant
SET gold = new.gold -
1
WHERE nation_code =
obj.nation_code AND host_year = obj.host_year;