Background Image

FORUM

2018.05.15 21:23

트리거 질문입니다.

조회 수 738 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Window7 64bit
CUBRID Ver.
9.3.9
CUBRID TOOL Ver.
CUBRID Manager 10.1.0.0003
응용 환경(API)
java

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


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

CREATE TABLE site_menu_his(

menu_id numeric(10,0) NOT NULL,

user_id numeric(10,0) NOT NULL,

type character varying(10) NOT NULL,

use_yn character(1) NOT NULL,

ins_id character varying(10),

ins_dtm datetime,

upd_id character varying(10),

upd_dtm datetime,

PRIMARY KEY(menu_id ,user_id )

) ;


이렇게 테이블을 만들었고(예시입니다.)

insert 와 update가 실행이 될때마다 트리거를 이용하여 

insert시에 ins_id, ins_dtm에 업데이트

update시에 upd_id, upd_dtm에 업데이트 되는 트리거를 만들려고 합니다.


insert 트리거

CREATE TRIGGER  tr_ins_site_menu_his

AFTER INSERT ON site_menu_his

EXECUTE 

UPDATE site_menu_his 

SET ins_id ='id', ins_dtm= SYSDATETIME

WHERE menu_id = obj.menu_id

AND user_id = obj.user_id;

이렇게 생성하였고 테스트 해보니 잘됩니다.  

하지만  

update 트리거의 경우에는 재귀호출로 무한루프가 되어 에러 메시지가 출력됩니다.

update 트리거 사용시 upd_id, upd_dtm값을 update 할 수 있는 방법 부탁드립니다.


한가지 찾아낸 방법으로는 

CREATE TRIGGER tr_upd_site_menu_his1

AFTER update ON site_menu_his(use_yn)

EXECUTE 

UPDATE site_menu_his SET upd_id ='id', upd_dtm= SYSDATETIME

WHERE menu_id = obj.menu_id

AND menu_id = obj.user_id;


CREATE TRIGGER tr_upd_site_menu_his2

AFTER update ON site_menu_his(type)

EXECUTE 

UPDATE site_menu_his SET upd_id ='id', upd_dtm= SYSDATETIME

WHERE menu_id = obj.menu_id

AND menu_id = obj.user_id;


빨간색 부분 처럼 수정될 컬럼을 지정해주면 되던데 컬럼을 하나씩 밖에 지정이 되지 않아 트리거가 컬럼이 많을경우 트리거를 많이 생성해야 됩니다.

혹시 이 방법말고 더 좋은 방법이 있다면 답변 부탁드립니다.

감사합니다.

  • ?
    오명환 2018.05.16 09:41
    트리거에 if 문을 사용해서 모니터링할 column의 old값과 new값을 비교하면 하나의 update trigger로 가능할 것 같습니다.

    CREATE TRIGGER tr_upd_site_menu_his1
    AFTER update ON site_menu_his
    IF old.use_yn <> new.use_yn or old.type <> new.type
    EXECUTE
  • ?
    퓨전남 2018.05.17 16:58
    답변이 도움이 되었습니다. 감사합니다.
  • ?
    엄기호 2018.05.16 09:43
    온라인 메뉴얼 URL 입니다.
    https://www.cubrid.org/manual/ko/9.3.0/sql/trigger.html#create-trigger

  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

    Date2024.04.23 Byadmin Views128
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4476
    read more
  3. DB코맨트 쿼리와 한글 처리 문제 질문드립니다.

    Date2018.07.02 By아라아 Views328
    Read More
  4. 운영db unloaddb 시 서비스중지

    Date2018.07.02 By머천다이 Views241
    Read More
  5. 리눅스 큐브리드를 윈도우 로컬로 복사하려는데여

    Date2018.07.02 By머천다이 Views480
    Read More
  6. ado.net 사용하여 테스트중인데 오류 발생하여 문의 남깁니다

    Date2018.06.29 By제무다 Views441
    Read More
  7. [긴급]서비스 시작이 안되는데 확인 부탁드립니다.

    Date2018.06.29 By머천다이 Views825
    Read More
  8. 큐브리드 매니저 password file open error 가 나는데 확인부탁드립니다.

    Date2018.06.26 Byoneh Views456
    Read More
  9. Windows Server 설치된 큐브리드 10.1.1.7691 의 loadjava.exe 실행 시 액세스가 거부되었습니다. 라는 메시지가 나오는 현상

    Date2018.06.25 By노멤버 Views323
    Read More
  10. 데이터 가져오기 시 "Operation would have caused one or more unique constraint violations." 오류 메시지

    Date2018.06.20 By2p Views4491
    Read More
  11. 데이터 업로드관련 문의

    Date2018.06.12 Bymadamryu Views218
    Read More
  12. 큐브리드 매니저(cubrid manager)에서 원격 호스트 접속이 안됩니다.

    Date2018.06.11 Byym Views915
    Read More
  13. python에서 cubrid 사용시 권한문제 질문드립니다

    Date2018.06.11 Bywooks Views1124
    Read More
  14. DECODE 함수 사용시 문제 발생건

    Date2018.06.07 By지성 Views1156
    Read More
  15. is not defined 에러

    Date2018.05.30 ByJSP초보입니당 Views1188
    Read More
  16. character varying" to domain "date" 오류

    Date2018.05.30 By리안커 Views1931
    Read More
  17. DB 테이블 목록 등 열기 시 오류 (+로그 추가-2)

    Date2018.05.29 Bycacaopie Views464
    Read More
  18. 테이블 설명 기능 설치

    Date2018.05.29 Byabg Views300
    Read More
  19. Store Procedure 작성 관련 질문

    Date2018.05.28 By키레이니 Views384
    Read More
  20. Store Procedure 호출 관련 질문

    Date2018.05.28 By키레이니 Views509
    Read More
  21. comment 기능 질문

    Date2018.05.25 By키레이니 Views753
    Read More
  22. heap_get_visible_version_from_log 에러

    Date2018.05.24 By복분자 Views275
    Read More
Board Pagination Prev 1 ... 54 55 56 57 58 59 60 61 62 63 ... 201 Next
/ 201

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales