Background Image

FORUM

조회 수 84 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

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


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
CENTOS 7
CUBRID Ver.
11.2.0
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
수고 많습니다.

아래와 같이 start connect 문을 이용 하여 업데이트 처리관련 하여 문의 드립니다.

 

1. 원 데이터

id     intent_fcnt      depth
83    58                   1
427  5                     2
429  1                     3

 

2. 쿼리문 #1

select         _ID as ID ,        1 as INTENT_FCNT ,        1 as INTENT_SCNT
    from
        (select t.ID as _ID
         from WISEICHAT_CATEGORY t
        start with t.id = 429
        connect by prior t.PARENT_ID = t.ID )

(*) 원하는 결과가 나옴
429    1    1
427    1    1
83      1    1

 

3. 쿼리문 #2

update
    WISEICHAT_CATEGORY C
join (
    select
        _ID as ID ,         1 as INTENT_FCNT ,        1 as INTENT_SCNT
    from
        (select  t.ID as _ID
         from WISEICHAT_CATEGORY t
        start with t.id = 429
        connect by prior t.PARENT_ID = t.ID ) ) N on C.ID = N.ID             
set    C.INTENT_FCNT = C.INTENT_FCNT + N.INTENT_FCNT 
(*) 결과 :

      쿼리 로직이 잘못된건지 아님 다른 이유가 있어서 그런건지

     429만 건수가 증가되고 나머지 427 & 83 은 미 반영 되어 있읍니다.

83    58
427  5

429  2

 

4. 위내용을 그림으로 첨부.

 

이상입니다.

 

  • ?
    bwkim 2022.10.13 15:14
    11.2 버전에서 아래와 같이 csql로 해보았습니다.

    csql> create table wiseichat_category (id int, name varchar, project_id int, parent_id int, intent_fcnt int, intent_scnt int, type int, [depth] int);
    csql> insert into wiseichat_category (id, parent_id, intent_fcnt, [depth]) values (83, null, 58, 1), (427, 83, 5, 2), (429, 427, 1, 3);

    update
    WISEICHAT_CATEGORY C
    join (
    select
    _ID as ID , 1 as INTENT_FCNT , 1 as INTENT_SCNT
    from
    (select t.ID as _ID
    from WISEICHAT_CATEGORY t
    start with t.id = 429
    connect by prior t.PARENT_ID = t.ID ) ) N on C.ID = N.ID
    set C.INTENT_FCNT = C.INTENT_FCNT + N.INTENT_FCNT ;

    3 rows affected. (0.003715 sec) Committed. (0.000009 sec)

    select * from wiseichat_category;

    === <Result of SELECT Command in Line 1> ===

    id name project_id parent_id intent_fcnt intent_scnt type depth
    =================================================================================================================
    83 NULL NULL NULL 59 NULL NULL 1
    427 NULL NULL 83 6 NULL NULL 2
    429 NULL NULL 427 2 NULL NULL 3

    3개 row 모두 update가 되었습니다.

    id를 primary key로 해도 동일했고, parent_id를 index로 만들어도 동일했습니다.

    말씀하신 결과는 어떤 환경에서 동작을 했는지 알려 주시면, 동일한 환경에서 재현해 보겠습니다.
    자바 환경으로만 되어 있어서, JDBC를 이용해서도 시험해 봤지만 결과는 동일했습니다.

    첨부된 이미지와 같은 내용을 확인할 수 있는 툴은 어떤 것인지 말씀해 주시면, 동일 툴을 사용해서 시험해 보겠습니다.
  • ?
    gidoree 2022.10.13 15:52

    과중한 업무에 따뜻한 답변 주셔서
    매우 감사드리며
    아래와 같이 진행환경을 전달 드립니다.

    0. 환경
    - 서버 사이드
    OS : CENTOS 7
    JAVA 1.7
    CUBRID 11.2.0

    - 클라이언트 사이드 (*) 두 환경 모두 같은 증상 입니다
    a. Dbeaver 버전22.2.0.202209040629
    b. SQLGate FOR CUBRID 9.17.1.0

    1. DDL 문
    CREATE TABLE "wiseichat.wiseichat_category" (
    id INTEGER DEFAULT NULL NOT NULL,
    name VARCHAR(100) DEFAULT NULL,
    project_id INTEGER DEFAULT NULL NOT NULL,
    parent_id INTEGER DEFAULT NULL,
    intent_fcnt INTEGER DEFAULT 0,
    intent_scnt INTEGER DEFAULT 0,
    "type" VARCHAR(1) DEFAULT 'I' NOT NULL,
    "depth" INTEGER DEFAULT NULL NOT NULL,
    CONSTRAINT pk_wiseichat_category_id PRIMARY KEY (id)
    );
    CREATE INDEX category_category_parent_id_idx ON "wiseichat.wiseichat_category" (parent_id);
    CREATE INDEX category_category_project_id_idx ON "wiseichat.wiseichat_category" (project_id);
    CREATE UNIQUE INDEX wiseichat_category_pk ON "wiseichat.wiseichat_category" (id);

    2. insert 문
    INSERT INTO "wiseichat.wiseichat_category" (id, name, project_id, parent_id, intent_fcnt, intent_scnt, "type", "depth") VALUES(83, '시스템', 4, NULL, 59, 0, 'I', 1);
    INSERT INTO "wiseichat.wiseichat_category" (id, name, project_id, parent_id, intent_fcnt, intent_scnt, "type", "depth") VALUES(427, '임용 시스템 관리', 4, 83, 6, 0, 'I', 2);
    INSERT INTO "wiseichat.wiseichat_category" (id, name, project_id, parent_id, intent_fcnt, intent_scnt, "type", "depth") VALUES(429, '육아휴직 연장 시 종료일 변경방법', 4, 427, 2, 0, 'I', 3);

    3. 초기화 update 문;
    UPDATE "wiseichat.wiseichat_category" SET name='시스템', project_id=4, parent_id=NULL, intent_fcnt=59, intent_scnt=0, "type"='I', "depth"=1 WHERE id=83;
    UPDATE "wiseichat.wiseichat_category" SET name='임용 시스템 관리', project_id=4, parent_id=83, intent_fcnt=6, intent_scnt=0, "type"='I', "depth"=2 WHERE id=427;
    UPDATE "wiseichat.wiseichat_category" SET name='육아휴직 연장 시 종료일 변경방법', project_id=4, parent_id=427, intent_fcnt=2, intent_scnt=0, "type"='I', "depth"=3 WHERE id=429;

    4.SELECT 만 떼어낸 쿼리문
    SELECT t.ID AS _ID
    , t.PARENT_ID, level AS [LEVEL]
    FROM WISEICHAT_CATEGORY t
    START WITH t.id = 429
    CONNECT BY PRIOR t.PARENT_ID = t.ID
    ;

    5. 업데이트 쿼리문
    update
    WISEICHAT_CATEGORY C
    join (
    select
    _ID as ID , 1 as INTENT_FCNT , 1 as INTENT_SCNT
    from
    (select t.ID as _ID
    from WISEICHAT_CATEGORY t
    start with t.id = 429
    connect by prior t.PARENT_ID = t.ID ) ) N on C.ID = N.ID
    set C.INTENT_FCNT = C.INTENT_FCNT + N.INTENT_FCNT
    ;

    6. 데이터 결과 확인 쿼리문
    select * from WISEICHAT_CATEGORY where id in (83, 427, 429);

    이상입니다.

  • ?

    첨부된 이미지를 참고하시기 바랍니다.

    일단 동일한 환경에서 SQL_Gate 결과입니다. 문의하신 결과와는 다르게, 정상적으로 출력이 되고 있습니다.

     

  • ?
    gidoree 2022.10.14 09:05
    답변 감사드리며 무엇이 잘못 되었는지 내부적으로 더 검토 해보겠습니다.

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

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

    Date2020.04.09 Byadmin Views4476
    read more
  3. 저장프로시저 샘플 테스트 에러 Invalid call: it can not return ResultSet.

    Date2022.10.21 By흔색늑대 Views127
    Read More
  4. 쿼리 실행 성공 여부가 일정하지 않습니다.

    Date2022.10.21 Byozro Views81
    Read More
  5. 같은 함수를 하나의 쿼리에서 두번 호출하면 에러발생

    Date2022.10.21 Byozro Views79
    Read More
  6. java 저장 함수를 생성하여 254자가 넘는 INPUT을 주었을 경우 OUTPUT이 NULL로 리턴되는 현상 발생

    Date2022.10.21 By두목원슝 Views82
    Read More
  7. 호스트 연결이 무한 로딩도네요

    Date2022.10.20 By큐브리드사용자 Views121
    Read More
  8. HA환경 문의드립니다.

    Date2022.10.19 By하얀미스 Views96
    Read More
  9. 큐브리드 createStatement 질문드려요

    Date2022.10.19 By차솨 Views87
    Read More
  10. cubrid_ha.conf 셋팅중 질문입니다.

    Date2022.10.18 By하얀미스 Views68
    Read More
  11. 큐브리드가 실행이 안됩니다.

    Date2022.10.18 By장천 Views107
    Read More
  12. FORAMT값 적용안됨

    Date2022.10.14 By귀기기기 Views61
    Read More
  13. CentOS 큐브리드 속도 저하 이슈

    Date2022.10.13 By리에레이 Views106
    Read More
  14. start connect 문을 이용 하여 업데이트 문의

    Date2022.10.13 Bygidoree Views84
    Read More
  15. CUBRIDDataReader row count와 DataTable row카운트가 다른이유

    Date2022.10.13 By어낚 Views114
    Read More
  16. DB 툴을 이용하여 큐브리드 연결이 안됩니다.

    Date2022.10.11 By방구석꿈틀이 Views165
    Read More
  17. SQLGate에서 서버오류 발생합니다

    Date2022.10.09 By두듀두듀듀 Views105
    Read More
  18. 백업파일명에 접미어(_년월일) 삽입 할 수 있는 방법을 알고 싶습니다

    Date2022.10.05 Bygidoree Views131
    Read More
  19. ERWIN Reverse Engineering 관련 문의드립니다.

    Date2022.10.05 By초코초코초 Views333
    Read More
  20. 메타 데이터 수집 관련하여 사용자 계정 추가생성

    Date2022.09.30 By장천 Views108
    Read More
  21. 다른 스키마의 테이블을 조회할수 없나요?

    Date2022.09.28 By엘L Views503
    Read More
  22. 자바 저장 프로시저 서버 기동 문의

    Date2022.09.27 By준88 Views72
    Read More
Board Pagination Prev 1 ... 10 11 12 13 14 15 16 17 18 19 ... 201 Next
/ 201

Contact Cubrid

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