* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
CENTOS 7 |
|
11.2.0 |
|
[도움말]-[버전정보] 확인 |
|
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. 위내용을 그림으로 첨부.
이상입니다.
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를 이용해서도 시험해 봤지만 결과는 동일했습니다.
첨부된 이미지와 같은 내용을 확인할 수 있는 툴은 어떤 것인지 말씀해 주시면, 동일 툴을 사용해서 시험해 보겠습니다.