PostgreSQL 트리거에 대해서 질문드립니다. 0 1 1,234

by Ming_dev [DB 기타] postgresql postgre trigger [2019.02.25 10:47:32]


Postgre 입문자 입니다.

다름이 아니라 트리거를 사용할 때,

본테이블에 데이터가 insert가 일어나면 다른 테이블에도 똑같은 데이터가 insert 되고, 해당 데이터의 시퀀스가 본 테이블에 참조 번호로 update가 되는 방식이 필요합니다. 

 

오라클의 경우에 찾아보니 패키지의 변수를 이용해서 하는 편법(?)이 있는 것 같던데 postgre 고수 분들의 답변이 필요합니다.

감사합니다!

by 마농 [2019.02.26 09:07:47]

포스그래는 잘 몰라서. 오라클 기준으로 답변 드립니다.
트리거에서 자신을 업데이트 하려고 하는데,. 이는 잘못된 방법입니다. 에러도 나고요.
업데이트는 이미 일어나는 중이기 때문에 업데이트를 또 하는게 아니라 값만 살짝 바꿔주면 됩니다.
업데이트가 종료되기 전에 바꿔줘야 하니. AFTER 트리거가 아닌 BEFORE 트리거를 사용합니다.
즉, BEFORE 트리거에서 :NEW.컬럼 := '새로운 값'; 형식을 취해 주시면 됩니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입