MySql 오류 1005: 테이블을 생성할 수 없음 - 오류 150의 원인 찾기
두 개의 테이블을 정의하려는 시도에서, 특히 ' foo' 및 'bar', 오류 메시지가 프로세스를 괴롭히며 파악하기 어려운 "오류"를 암시합니다. 150." 숨겨진 원인을 밝히고 이 코드 수수께끼 뒤에 숨은 수수께끼를 풀기 위해 MySQL의 영역으로 여행을 떠나보겠습니다.
자세히 조사해 보면 두 쿼리 모두 눈에 띄는 오류가 없는 것으로 보입니다. 그러나 함께 제공되는 오류 메시지는 그렇지 않다는 것을 암시합니다. 오류 메시지를 주의 깊게 조사한 결과 오류 150에 대한 참조를 발견했습니다. MySQL 문서를 자세히 살펴보면 FOREIGN KEY 제약 조건의 개념을 발견할 수 있습니다.
외래 키 제약 조건의 맥락에서 흥미로운 메모가 있습니다. "삭제된 테이블을 다시 생성하는 경우 해당 테이블을 참조하는 외래 키 제약 조건을 준수하는 정의가 있어야 합니다." 이 계시는 우리가 이 오류를 초래하는 상황을 조사하도록 유도합니다. 재생성되는 테이블(이 경우 "foo")이 외래 키 제약 조건에 필요한 열 이름, 데이터 유형 및 인덱스 정의를 준수하는 것이 중요합니다. 이러한 사양에서 벗어나면 MySQL에서 오류 150에 대한 참조와 함께 오류 1005가 발생할 수 있습니다.
오류 메시지와 MySQL 설명서에서 수집한 통찰력을 고려하면 'foo' InnoDB 스토리지 엔진을 사용하여 생성되지 않았을 수 있습니다. 문서를 검토한 결과 이러한 의혹이 확인되었습니다. "두 테이블 모두 InnoDB 테이블이어야 하며 임시 테이블이 아니어야 합니다."
'foo'와 'bar'가 모두 실제로 InnoDB 테이블인지 확인하고 TEMPORARY 테이블을 사용하면 이러한 잠재적인 오류 원인을 제거할 수 있습니다. 다른 요인도 오류 150의 원인이 될 수 있다는 점은 주목할 가치가 있지만 이 특정 시나리오는 제공된 정보와 깔끔하게 일치합니다.
위 내용은 MySQL 오류 1005 및 150: 내 테이블을 만들 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!