어제 부터 보기 시작한 트리거....
도움 주신 분 감사드립니다.
가능한 매뉴얼을 참조하려고 하는데...
DB 문서들을 통해서 얻지 못한 사항 몇가지 질문 드립니다.
우선 trigger의 drop는 어떻게 하는지요...ㅡㅡ;
psql 에서 drop trigger trigger_name; 하고 나면..아래와 같은
에러만 나옵니다.
-----------------------------------------------
lbs=# drop trigger emp_stamp;
ERROR: syntax error at or near ";" at character 23
ERROR: syntax error at or near ";" at character 23
LINE 1: drop trigger emp_stamp;
^
-----------------------------------------------
두번째로 하나의 테이블에서 insert, update, delete를 모두
감지해서
각각의 이벤트마다 서로 다른 동작을 하도록 구현하려 하고
있습니다.
예를 들어 insert가 발생되면 emp_tmp 테이블에 insert된 row의
키값과 해당 이벤트 이름.
즉, 'insert'라는 문자열을 저장하려고 합니다.
따라서 function내에서 이벤트가 발생시에 해당 이벤트의
종류(insert, update, delete)를
구분하고 싶은데...아직 방법을 찾지 못했습니다.
- NEW : ROW LEVEL 트리거에서 INSERT/UPDATE 의 결과로 새로
생서외었거나 갱신된 ROW (RECORD타입이다.)
- OLD : NEW 와 비슷하나 DELETE/UPDATE 의 동작 전의 해당
ROW
- TG_NAME : NAME형이며 트리거명이 저장된다.
- TG_WHEN : AFTER나BEFORE가 저장된다.
- TG_OP : INSERT, DELETE 등의 이벤트가 저징된다.
매뉴얼 중급편에서 TG_OP가 이벤트를 저장하고 있다고 하는데...
어떻게 사용해야 하는지는 관련문서를 참조하라고 해서 더 찾아보긴
했습니다만...
아직 헤매는 중입니다.
트리거 프로시져 변수와 관련된 자료 소개 좀 부탁드립니다.
그리고 트리거 드랍 방법도요...ㅡㅡ
|