MySQL 외래 키 제약 조건 오류 문제 해결
MySQL의 FK(외래 키) 제약 조건은 테이블을 연결하여 데이터 무결성을 보장합니다. 그러나 FK를 추가하면 오류가 발생할 수 있는 경우가 있습니다. 이 가이드는 일반적인 "외래 키 제약 조건을 추가할 수 없음" 문제를 해결하는 데 도움이 됩니다.
문제:
Patient
및 Appointment
테이블 사이에 FK 제약 조건을 추가할 때 다음 오류가 발생할 수 있습니다.
<code>ERROR 1215 (HY000): Cannot add foreign key constraint</code>
원인 찾기:
문제를 진단하려면 다음 명령을 사용하세요.
<code class="language-sql">SHOW ENGINE INNODB STATUS;</code>
출력의 "LATEST FOREIGN KEY ERROR" 섹션을 주의 깊게 살펴보세요.
해결책:
자주 발생하는 원인은 하위 열과 상위 열 간의 데이터 유형 불일치입니다. 예:
Patient.MedicalHistory
(어린이)는 SMALLINT
일 수 있습니다.medicalhistory.MedicalHistoryID
(부모)는 INT
일 수 있습니다.수정은요? 하위 열의 데이터 유형이 상위 열의 데이터 유형과 정확히 일치하는지 확인하세요. 이 시나리오에서는 Patient.MedicalHistory
을 INT
으로 변경합니다.
권장 방법:
FK가 포함된 테이블을 만들기 전에 다음 명령을 실행하세요.
<code class="language-sql">SET FOREIGN_KEY_CHECKS=0;</code>
이렇게 하면 상위 테이블 누락으로 인한 FK 제약 조건 오류 없이 순서에 관계없이 테이블을 생성할 수 있습니다. 나중에 FK 확인을 다시 활성화하는 것을 잊지 마세요:
<code class="language-sql">SET FOREIGN_KEY_CHECKS=1;</code>
위 내용은 MySQL에 외래 키 제약 조건을 추가할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!