create문 버그 (외래키 2개 이상 참조시 )

by moon posted Aug 04, 2014

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Window7 32bit, Linux 64bit 등
CUBRID Ver.
[cubrid_rel] 수행 결과
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, php, odbc 등 입력

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


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

버전정보 :

CUBRID-Windows-x64-9.3.0.0206.exe

CUBRIDManager-2014-build-0460-windows-x64.exe

cmserver-9.3.0.0407-win-x64-gen_cert-patch.zip

 

안녕하세요?

외래키가 다른테이블에 2개 이상 참조할 경우  create문에 생성시 버그가 있습니다.

그래서 큐브리드 백업시 내보내기하고 가져오기를 하면

가져오기시 불필요한 쿼리문이 생성 되어서 외래키 정보를 불러올시 오류가 납니다.

오류가 된 부분을 편집해서 가져오기를 하니 오류없이 진행이 되네요.

 

샘플 테이블 스키마정보는 다음과 같습니다.
CREATE TABLE tt_data
(
 aa_id INTEGER NOT NULL,
 bb_id CHARACTER(8) NOT NULL,
 cc_id INTEGER NOT NULL,
 dd_name CHARACTER VARYING(20) NOT NULL,
 ee_time DATETIME,
 CONSTRAINT [primary] PRIMARY KEY(aa_id, bb_id, cc_id, dd_name),
 CONSTRAINT  tt_data_ibfk_1 FOREIGN KEY (cc_id, bb_id, dd_name) REFERENCES train(cc_id, bb_id, dd_name) ON DELETE NO ACTION ON UPDATE NO ACTION  
 REFERENCES train ON DELETE NO ACTION ON UPDATE NO ACTION REFERENCES train ON DELETE NO ACTION ON UPDATE NO ACTION   <---- 이렇게 불필요한 쿼리문 생성됩니다.
 ) COLLATE euckr_bin ;

CREATE INDEX cc_id ON tt_data(cc_id, bb_id, dd_name);

 

내보내기시 index.sql 정보입니다.

ALTER TABLE tt_data ADD CONSTRAINT  tt_data_ibfk_1 FOREIGN KEY (cc_id, bb_id, dd_name) REFERENCES train(cc_id, bb_id, dd_name)

ON DELETE NO ACTION ON UPDATE NO ACTION  <-- 여기부분 맞는지 모름. 삭제안해도 문제 없이 동작함.

REFERENCES train ON DELETE NO ACTION ON UPDATE NO ACTION REFERENCES train ON DELETE NO ACTION ON UPDATE NO ACTION;  <---- 이렇게 불필요한 쿼리문 생성됩니다.

 
제가 생각하는게 맞는지 궁금하고요.

혹 버그가 맞다면 패치버전을 언제쯤 받을수 있는지 궁금합니다.

 

빠른답변 감사합니다.

 


Articles