트리거 동작 문의

by 종이 posted Aug 12, 2016

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Window 2008 64bit
CUBRID Ver.
CUBRID 9.3 (9.3.2.0016) (64bit release build for Windows_NT) (Feb 10 2015 14:25:41)
CUBRID TOOL Ver.
CUBRID Manager 9.3.6.004  (32bit)
응용 환경(API)
java

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

안녕하세요.

 

테이블의 자료 변화를 로그로 남겨 elasticsearch에 반영하기 위해 트리거를 사용하였습니다.

 

데이터 테이블에 insert, update, delete시 로그 테이블에 자료를 insert 하는 트리거를 만들었는데, 삭제시 트리거가 제대로 동작하지 않습니다.

 

트리거 내용은 아래와 같습니다.

 

CREATE TRIGGER im_data_insert
INSERT ON im_data
EXECUTE AFTER
insert into [im_data_log] ([mode], [data_key], [reg_date]) values ('I', [obj].[data_key],  SYS_DATETIME );

 

 

CREATE TRIGGER im_data_update
UPDATE ON im_data
EXECUTE AFTER
insert into [im_data_log] ([mode], [data_key], [reg_date]) values ('U', [obj].[data_key],  SYS_DATETIME );

 

 

CREATE TRIGGER im_data_delete
DELETE ON im_data
EXECUTE BEFORE
insert into [im_data_log] ([mode], [data_key], [reg_date]) values ('D', [obj].[data_key],  SYS_DATETIME );


 

자료를 입력, 수정하면 insert, update 트리거가 정상적으로 동작을 하는데, 자료를 삭제하면 delete 트리거가 동작하지 않고, update 트리거가 동작을 하는것 같습니다.

 

로그 테이블에 입력되는 자료를 보면 I, U, U처럼 삭제시 update 트리거가 동작을 하는것처럼 보입니다.

 

트리거 작성시 오류가 있는지 확인 부탁드립니다.

 

감사합니다.


Articles

13 14 15 16 17 18 19 20 21 22