로딩
요청 처리 중입니다...

postgresql trigger(트리거) before after 완벽 이해

 postgresql trigger(트리거) before after 완벽 이해

우선 이렇게 2개의 테이블을 생성해놓는다. 테이블의 컬럼에는 단 한개의 컬럼만 넣어줬다.

(테스트만 할 것이기 때문에) 여기서 트리거를 생성해주는데 after로 먼저 예를 들어본다. 그림처럼 이해하면 편하다. after는 앞에 써놓은 dml문처럼 insert, update를 먼저 수행하고 그 후에 프로시져를 수행한다고 생각하면 편하다.

이렇게 함수를 작성해준다. 내가 해볼 테스트는 넣은 밸류값에 +1을 더해서 출력되게 하는 함수를 만들어줄 것이다.

그 후에 이렇게 값을 넣어주고 select로 조회해본다. select * from tb_test1을 조회했을 때는 값 그대로 40000~이 나온다. insert를 해줬기 때문에 그대로 출력이 됐다. 그에 반해 select * from tb_test2는 40000001이 나왔다.

함수를 탔기 때문이다. 생성했던 트리거를 지우고 before로 다시 만들어보자.

함수도 그대로 두고 다시 insert 작성한다. 이렇게 작성을 해주고 select *...

# after # triggerbefore # triggerafter # tablebefore # tableafter # table # sqlbeforeafter # beforeaftersql # before # 트리거