>데이터 베이스 >MySQL 튜토리얼 >MySQL '테이블을 생성할 수 없습니다' 오류(오류 번호: 150)가 나타나는 이유는 무엇입니까?

MySQL '테이블을 생성할 수 없습니다' 오류(오류 번호: 150)가 나타나는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-20 02:19:09680검색

Why Am I Getting a MySQL

MySQL의 "테이블을 생성할 수 없습니다" 오류 문제 해결(오류 번호: 150)

SQL 스크립트를 통해 테이블을 생성하면 "MySQL: 테이블을 생성할 수 없습니다(errno: 150)" 오류가 발생할 수 있습니다. 이는 .sql 파일 가져오기 중에 자주 발생하여 테이블 생성 실패로 이어집니다.

근본 원인:

오류 "오류 150: 외래 키 제약 조건이 올바르지 않습니다."는 테이블 정의와 참조 외래 키 제약 조건이 일치하지 않음을 나타냅니다. 새로 생성된 테이블이 외래 키 요구 사항을 충족하지 않습니다.

해결책:

MySQL의 FOREIGN KEY 문서에는 다음과 같이 명시되어 있습니다. 다시 생성된 테이블은 이를 참조하는 외래 키 제약 조건과 정확하게 일치해야 합니다. 이는 참조된 키의 동일한 열 이름, 데이터 유형 및 인덱스가 중요하다는 것을 의미합니다. 이러한 조건을 충족하지 못하면 오류 1005가 발생하며 메시지에 오류 150이 표시되어 잘못된 형식의 외래 키 제약 조건을 나타냅니다.

따라서:

  • 열 이름과 데이터 유형은 참조된 제약 조건과 일치해야 합니다.
  • 참조된 키의 인덱스는 필수입니다.
  • 테이블 정의는 외래 키 제약 조건을 위반해서는 안 됩니다.

디버깅 단계:

  1. 열 정의 확인: 새 테이블의 열 이름과 데이터 유형이 원래 스키마의 내용을 반영하는지 확인하세요.
  2. 인덱스 확인: 원본 테이블과 새 테이블 모두에서 참조 키에 인덱스가 있는지 확인하세요.
  3. 외래 키 제약 조건 검토: 테이블을 참조하는 외래 키 제약 조건을 주의 깊게 검사하세요. 정확하게 정의되었는지, 참조 테이블의 올바른 열을 가리키는지 확인하세요.
  4. .sql 스크립트 검사: .sql 파일이 완전하고 테이블 정의나 제약 조건에 영향을 줄 수 있는 구문 오류가 없는지 철저히 확인하세요.

이러한 잠재적인 불일치를 수정함으로써 테이블 정의는 참조하는 외래 키 제약 조건과 정렬되어 "오류 150: 외래 키 제약 조건이 올바르지 않습니다" 문제를 해결합니다.

위 내용은 MySQL '테이블을 생성할 수 없습니다' 오류(오류 번호: 150)가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.