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

    Date2020.04.09 Byadmin Views4444
    read more
  2. 저장 프로시저 사용시 커넥션 관련

    Date2018.04.11 By고늬 Views392
    Read More
  3. CUBRID MANAGER 한글이 깨져서 나오고 입력할 때도 한글이 깨집니다.

    Date2018.04.12 Byqswaert Views465
    Read More
  4. cub_server cpu점유율이 계속 올라가고 응답이없습니다.

    Date2018.04.16 By루피 Views890
    Read More
  5. Redmine 의 데이터베이스로 큐브리드를 사용하는 것이 가능할까요?

    Date2018.04.17 By밝은마음 Views254
    Read More
  6. 큐브리드 프로시저

    Date2018.04.17 ByNICK1990 Views1807
    Read More
  7. JOIN 질의 시 CASE WHEN 구문 관련 문의

    Date2018.04.19 By잉여개발자 Views4699
    Read More
  8. 외부 IP로 서비스시 포트관련

    Date2018.04.20 By큐브리드큐큐큐큐 Views601
    Read More
  9. csql -c 옵션 질문입니다.

    Date2018.04.27 By충이 Views321
    Read More
  10. 데이터 INSERT 문제 [ 시간당 1만건씩 INSERT 되는데 ] exception cannot communicate with the broker 에러가 발생합니다.

    Date2018.04.27 By키다리 Views341
    Read More
  11. 큐브리드 멀티코어 지원이 안되나요?

    Date2018.05.02 By훈이아빠 Views389
    Read More
  12. unloaddb, loaddb 진행 후 service가 시작되지 않습니다.

    Date2018.05.04 Byseyaa Views601
    Read More
  13. JSP를 사용한 큐브리드와 AWS 웹서버 연동 방법

    Date2018.05.09 By영토리 Views395
    Read More
  14. Mybatis 사용시 setTransactionIsolation();을 일부 트렌젝션에서 사용이 가능할가요?

    Date2018.05.14 By라면 Views396
    Read More
  15. create db 수행시 오류가 발생합니다.

    Date2018.05.14 By큐브리드초보당 Views408
    Read More
  16. 하이버네이트 uniqueResult 함수 사용 문의

    Date2018.05.15 Bykim77p Views461
    Read More
  17. 안녕하세요.. 초보적인 질문입니다,

    Date2018.05.15 ByMi Views180
    Read More
  18. 트리거 질문입니다.

    Date2018.05.15 By퓨전남 Views738
    Read More
  19. cubrid.jdbc.driver.CUBRIDException: Semantic: Cannot coerce host var to type bit. 문의 드립니다.

    Date2018.05.16 Byvks Views2864
    Read More
  20. 툴에서 튜닝모드로 수행했을 때 관련

    Date2018.05.16 By잉여개발자 Views330
    Read More
  21. 오라클 job -> 큐브리드 ??

    Date2018.05.17 By퓨전남 Views485
    Read More
Board Pagination Prev 1 ... 136 137 138 139 140 141 142 143 144 145 ... 200 Next
/ 200

Contact Cubrid

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