-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
DB 생성시 발생 에러 관련! "Can't create table" "Error No 150. "Foreign key constraint is incorrectly formed")
23.10.08 21:49 작성 23.10.08 22:27 수정 조회수 265
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작성하면 해결 됩니다.
답변을 작성해보세요.
답변 0