집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 오류 150 및 1005: 외래 키 관계를 만들 수 없는 이유는 무엇입니까?
MySql 외래 키 오류 150: 수수께끼의 수수께끼
외래 키 관계가 있는 "foo" 및 "bar" 테이블을 생성하려고 할 때 , 오류 150과 관련된 오류 1005(HY000)가 발생합니다. 이 오류는 실망스러울 수 있습니다. 근본 원인이 무엇인지 당황스럽습니다.
외래 키 제약 조건에 대한 MySQL 문서에 따르면 외래 키 참조가 있는 삭제된 테이블을 다시 생성할 때 문제가 발생합니다. 테이블은 참조된 키에 대한 인덱스뿐만 아니라 열 이름과 유형이 일치하여 외래 키 제약 조건을 준수해야 합니다. 이러한 조건이 충족되지 않으면 MySQL은 기본 오류 150과 함께 오류 1005를 반환합니다.
"foo" 테이블이 InnoDB 테이블로 정의되지 않았기 때문에 오류가 발생한 것일 수 있습니다. MySQL 문서에는 두 테이블이 모두 InnoDB 테이블이어야 하고 임시가 아니어야 한다고 명시되어 있습니다.
"foo" 테이블 생성 쿼리를 수정하여 InnoDB 엔진을 지정하려면:
mysql> CREATE TABLE foo(id INT PRIMARY KEY) ENGINE=InnoDB;
다음과 같이 해야 합니다. 오류 150을 해결하여 외래 키 제약 조건을 사용하여 "bar" 테이블을 성공적으로 생성할 수 있습니다.
위 내용은 MySQL 오류 150 및 1005: 외래 키 관계를 만들 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!