해결된 질문
작성
·
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작성하면 해결 됩니다.
답변