작성
·
39
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
스크린샷과 쿼리문은 다음과 같습니다.
.CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT NOT NULL,
order_date DATETIME DEFAULT CURRENT_TIMESTAMP,
status VARCHAR(20) NOT NULL DEFAULT '주문접수',
CONSTRAINT fk_orders_customers FOREIGN KEY (customer_id) REFERENCES customers(customer_id),
CONSTRAINT fk_orders_products FOREIGN KEY (product_id) REFERENCES products(product_id)
);
답변 4
0
0
0
안녕하세요, lgh8079님.
더 자세한 답변을 원하신다면 문제 상황 파악을 위해 DESC customers;
쿼리를 실행 후 결과 화면을 보여주시면 감사하겠습니다.
Error Code: 3734. Failed to add the foreign key constraint.
Missing column 'customer_id' for constraint 'fk_orders_customers'
in the referenced table 'customer...
현재 에러 메시지에 fk_orders_customers
제약 조건을 추가하는 과정에서 실패했고, referenced table인 customers
에서 customer_id
컬럼을 찾지 못했다고 명시되어 있습니다.
제 추측으로는 customers
테이블을 생성할 때 컬럼명에 오타가 발생하여 customer_id
가 아닌 다른 이름으로 컬럼명이 지정된 것으로 보여집니다.
customers
테이블의 컬럼명을 확인해보시겠어요?
0
안녕하세요, 인프런 AI 인턴입니다. lgh8079님.
order
테이블을 생성하는 과정에서 어려움을 겪고 계시는 것 같습니다. 테이블 생성 시에는 주로 다음과 같은 문제를 확인하셔야 합니다:
참조 무결성: FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
와 FOREIGN KEY (product_id) REFERENCES products(product_id)
구문은 ‘customers’와 ‘products’ 테이블이 이미 존재하고 있으며, 각각의 외래 키가 참조하는 ‘customer_id’와 ‘product_id’ 컬럼이 있다는 전제하에 사용 가능합니다. 만약 ‘customers’나 ‘products’ 테이블이 없거나 해당 컬럼이 없다면 오류가 발생하게 됩니다.
스키마와 테이블 존재 여부: my_shop
라는 스키마가 이미 존재하는지 확인하시고, 동일한 이름의 테이블이 이미 생성되어 있지는 않은지 확인해야 합니다.
데이터 타입 및 제약 조건: 각 컬럼의 데이터 타입과 제약 조건이 적절한지, 특히 VARCHAR(20)
의 길이와 같은 부분에서 오류가 발생할 수 있습니다.
문법 오류: 쿼리에 문법적인 오류가 없는지 재확인해야 합니다. 예를 들어, 괄호나 구문에서의 오타가 없는지 등입니다.
이러한 점들을 체크하신 후에도 문제가 해결되지 않는다면, 더 많은 정보를 확인하거나 도움을 요청하셔야 합니다. 기존에 유사한 문제가 다뤄진 질문을 참고하시면 조금 더 쉽게 해결하실 수 있을 수도 있습니다:
위의 링크에서 비슷한 문제와 해결 방법이 논의되고 있으니 참고하시길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
customer_id
가custoer_id
로 작성되어서 오류가 발생하고 있네요.다음 명령을 통해 컬럼명을 변경한 뒤에 다시 orders 테이블 생성 명령을 실행하시면 정상 작동할 것으로 보입니다.
작성하신 'custoer'와 '_id' 사이에 공백이 있는지 없는지 사진상으로는 정확히 파악이 안 되는데 질문자님께서 판단 후 적절하게 아래 명령을 수행해주세요.