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 Views31
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4457
    read more
  3. python에서 cubrid 사용시 권한문제 질문드립니다

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

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

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

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

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

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

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

    Date2018.05.28 By키레이니 Views508
    Read More
  11. comment 기능 질문

    Date2018.05.25 By키레이니 Views750
    Read More
  12. heap_get_visible_version_from_log 에러

    Date2018.05.24 By복분자 Views275
    Read More
  13. FATAL ERROR 발생으로 cubrid server start가 되지 않습니다.

    Date2018.05.24 By복분자 Views1265
    Read More
  14. cubrid server start: fail 이 뜹니다.

    Date2018.05.24 By복분자 Views2089
    Read More
  15. create db 실행 오류

    Date2018.05.22 By영진 Views611
    Read More
  16. 오라클 job -> 큐브리드 ??

    Date2018.05.17 By퓨전남 Views485
    Read More
  17. 툴에서 튜닝모드로 수행했을 때 관련

    Date2018.05.16 By잉여개발자 Views330
    Read More
  18. cubrid.jdbc.driver.CUBRIDException: Semantic: Cannot coerce host var to type bit. 문의 드립니다.

    Date2018.05.16 Byvks Views2866
    Read More
  19. 트리거 질문입니다.

    Date2018.05.15 By퓨전남 Views738
    Read More
  20. 안녕하세요.. 초보적인 질문입니다,

    Date2018.05.15 ByMi Views180
    Read More
  21. 하이버네이트 uniqueResult 함수 사용 문의

    Date2018.05.15 Bykim77p Views461
    Read More
  22. create db 수행시 오류가 발생합니다.

    Date2018.05.14 By큐브리드초보당 Views408
    Read More
Board Pagination Prev 1 ... 54 55 56 57 58 59 60 61 62 63 ... 200 Next
/ 200

Contact Cubrid

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