안녕하세요~
제가 원하는 기능이 트리거로 구현가능한지 궁금하여 글을 올립니다.
질문은 아래와 같습니다.
어떤 규정을 설정하는 테이블이 존재하고, 해당 규정을 생성, 수정 삭제 할 수 있는 여러명의 "관리자"가 존재합니다.
이 규정은 시스템 전체에 영향을 줄 수 있는 규정이므로, 반드시 생성, 수정, 삭제시 로깅 작업이 필요하여,
해당 규정 테이블에는 "최종 수정자"(수정한 관리자 ID) 를 저장 할 수 있는 컬럼을 만들었습니다.
여기에서 관리자 ID는 오라클 계정이 아닌 규정설정 프로그램 상의 개별적인 ID 입니다.
트리거로 작업 구상을하고 실제 작업을 하던 중 삭제 부분에서 문제를 찾았습니다.
Inserting or Updating 시 에는 최종 수정자를 OLD or NEW 데이터로 가져 올 수 있지만,
Deleteing 시 에는 삭제를 수행한 관리자 ID를 가져 올 수 없다는 문제점을 발견했습니다.
그래서 해결 할 수 있는 약간의 꼼수를 생각해 봤는데 Delete 전 Update 후 Delete를 하거나,
혹은 로깅작업을 트리거로 구현하지 않고, 따로 만든다... 정도인데
따로 만들경우, 관리해야 할 규정이 한두개가 아니라 조금 꺼려지네요...
위의 작업을 하기 위해 트리거로 구현이 가능 한 방법이 있을까요?
없다면 따로 로깅하는 pl/sql 을 만드는 것이 최선일까요?
조언 부탁드립니다.
감사합니다.