인프런 커뮤니티 질문&답변

Chris님의 프로필 이미지
Chris

작성한 질문수

스프링 부트 웹 개발 입문 - 따라하며 배우기

DB Table 생성, 데이타 입력

DB 생성시 발생 에러 관련! "Can't create table" "Error No 150. "Foreign key constraint is incorrectly formed")

해결된 질문

작성

·

437

·

수정됨

1

선생님께서 올려주신 SQL 문 기준으로 확인해보니 하기와 같습니다.

SQL 문에서 order_list 테이블에는 VARCHAR(100) 타입의 cust_id 열이 있으며, 이것은 cust_info 테이블의 cust_id 열을 참조하려고 합니다. 이 cust_id 열도 VARCHAR(100) 타입입니다. 따라서 데이터 유형이 일치하므로 이건 패스...

그러나 외래 키에는 기본적인 규칙이 있고, 해당 규칙은: 참조하려는 열(상위 테이블의)은 고유 제약 조건을 가져야 하거나 기본 키여야 합니다. cust_info 테이블에서 cust_id 열은 고유 제약 조건이 없습니다.

이 문제를 해결하려면 cust_info 테이블의 cust_id 열에 고유 제약 조건을 추가해야 합니다. 다음과 같이 할 수 있습니다:

ALTER TABLE cust_info ADD UNIQUE (cust_id);

위의 문장을 실행한 후 외래 키를 추가하기 위해 ALTER TABLE 문을 실행할 수 있습니다:

ALTER TABLE order_list ADD CONSTRAINT fk_cust_id FOREIGN KEY (cust_id) REFERENCES cust_info(cust_id);

이 단계를 거치면 해당 제약 조건에 대한 "Foreign key constraint is incorrectly formed" 오류를 더 이상 만나지 않아야 합니다.

 

즉 cust_info의 cust_id를 유니크 상태로 만들고 나서 늦부장님께서 올려주신 DB작성하면 해결 됩니다.

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
Chris님의 프로필 이미지
Chris

작성한 질문수

질문하기