* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window10 64bit | |
CUBRID 9.3 | |
CUBRID Manager 9.3.6.007 (64bit) | |
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
안녕하세요. 질문사항 하나 올립니다.
다름이 아니고 현재 Tibero DB에서 Cubrid DB로 마이그레이션을 진행하고 있는데,
Tibero에서 export한 스키마 생성 스크립트 실행하다가
1. cubrid cannot change attributes used in foreign keys
2. referred by the foreign key does not have the primary key
위와 같은 에러 경고가 나옵니다.
CUBRID_개발자_중급과정_20160613.pdf 를 다운 받아 대충 읽어 보았지만 다음과 같은 문구를 확인하였습니다.
인덱스 - PK, FK 별도 인덱스 지정 필요 없음(p40기본사항 페이지)
이말인 즉슨 다시 말해서 이미 인덱스로 걸려 있는 컬럼은 PK나 FK키로 설정 할 수 없다는 건가요???
뭐 적절히 DDL을 사용해서 변경 할수 있겠지만
제약사항을 만들때 순서가 있는지 궁금해서 글 남깁니다.
안녕하세요.
언급하신대로 동일 컬럼명으로 이미 인덱스가 존재해 있다면 발생할 수 있으며, PK 및 FK 생성 시 내부적으로 자동으로 인덱스가 생성됩니다.
오라클이나 DB2의 경우 먼저 PK와 동일 컬럼명으로 인덱스 생성 후 PK를 생성할 경우 앞서 생성한 인덱스를 사용하거나 동일 컬럼명으로 이름을 달리하여 인덱스를 만들 수 있는데 CUBRID에서는 동일한 역할을 하는 인덱스로 판단하여 생성하지 못하도록 하고 있습니다.