> 데이터 베이스 > MySQL 튜토리얼 > MySQL에서 \'외래 키 제약 조건을 추가할 수 없습니다\' 오류가 발생하는 이유는 무엇입니까?

MySQL에서 \'외래 키 제약 조건을 추가할 수 없습니다\' 오류가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-26 17:44:29
원래의
419명이 탐색했습니다.

Why Am I Getting the

외래 키 제약 조건 오류: 원인 및 해결 방법 이해

MySQL에서 코스 테이블을 생성하는 동안 발생한 오류에 관한 질문입니다.

ERROR 1215 (HY000): Cannot add foreign key constraint
로그인 후 복사

이 오류는 SQL 문에 지정된 외래 키 제약 조건에 문제가 있음을 나타냅니다. 외래 키 제약 조건은 한 테이블(예: 강좌)의 외래 키 열에 있는 데이터가 다른 테이블(예: 부서)의 기본 키 열에 있는 기존 데이터를 참조하도록 보장합니다.

이 오류를 해결하고 성공적으로 생성하려면 코스 테이블에서는 다음 지침을 따르는 것이 중요합니다.

  • 일치 엔진, 데이터 유형 및 데이터 정렬:

    • 둘 다 참조 부서 테이블의 필드(dept_name)와 코스 테이블의 외래 키 필드(dept_name)는 InnoDB와 같은 동일한 엔진을 가져야 합니다.
    • 필드는 길이를 포함하여 동일한 데이터 유형을 가져야 합니다. 예를 들어 VARCHAR(20) 또는 INT(10) UNSIGNED.
    • 문자 집합 인코딩을 지정하는 데이터 정렬도 일치해야 합니다. 일반적으로 utf8을 사용합니다.
  • 참조 필드의 고유성:

    • 외래 키(dept_name)가 참조하는 필드 부서 테이블에서)은 고유해야 합니다. 이렇게 하면 코스 테이블의 각 행이 부서 테이블의 행을 올바르게 참조할 수 있습니다.
  • NOT NULL 제약 조건:

    • 외래 키 제약 조건에 SET NULL 옵션을 지정한 경우 관련된 열이 NOT NULL로 정의되지 않았는지 확인하세요.

이 지침을 준수하세요. , "외래 키 제약 조건을 추가할 수 없습니다" 오류를 방지하고 코스 테이블과 학과 테이블 사이에 적절한 참조 무결성을 설정할 수 있습니다.

추가 참고 사항:

외래 키 비활성화 SET FOREIGN_KEY_CHECKS=0을 사용하여 검사하면 잘못된 제약 조건이 있는 테이블을 생성할 수 있지만 권장되지는 않습니다. 이 설정은 데이터 불일치 및 데이터베이스 손상으로 이어질 수 있습니다.

위 내용은 MySQL에서 \'외래 키 제약 조건을 추가할 수 없습니다\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿