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

MySQL 오류 1215: \'외래 키 제약 조건을 추가할 수 없습니다\'가 나타나는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-26 22:36:31
원래의
639명이 탐색했습니다.

 Why Am I Getting MySQL Error 1215:

MySQL 오류 1215: "외래 키 제약 조건을 추가할 수 없습니다."

MySQL에서 외래 키 제약 조건을 생성하려고 할 때 다음을 수행하는 것이 중요합니다. 참조된 필드와 외래 키 필드가 모두 특정 요구 사항을 준수하는지 확인하세요. 이 오류를 진단하고 해결하는 방법은 다음과 같습니다.

엔진 일관성

  • 관련된 두 테이블 모두에 "InnoDB" 엔진을 사용해야 합니다.

데이터 유형 및 길이

  • 두 필드의 데이터 유형 및 길이가 정확히 일치해야 합니다. 예를 들어 참조 필드가 VARCHAR(20)인 경우 외래 키 필드도 VARCHAR(20)이어야 합니다.

Collation

  • 데이터 정렬은 문자 집합 및 정렬 규칙을 나타냅니다. 두 필드 모두 utf8과 같은 동일한 데이터 정렬을 사용해야 합니다.

고유성

  • 참조된 필드는 고유해야 하며, 주로 기본 또는 고유로 표시됩니다. 열쇠. 외래 키 필드는 중복 값을 허용하는 필드를 참조할 수 없습니다.

Null 처리

  • 다음 경우에 SET NULL 조건을 정의하지 않았는지 확인하세요. 일부 참조 열은 NOT NULL로 선언되었습니다.

추가 증상

오류가 지속되면 SHOW ENGINE INNODB STATUS; 명령을 실행하세요.

잘못된 명령문

제공된 SQL 문은 "department" 테이블을 참조하는 외래 키 제약 조건을 사용하여 "course"라는 테이블을 생성합니다. "부서_이름" 필드. 그러나 이 문은 "dept_name" 필드에 대한 데이터 유형 사양이 부족하기 때문에 올바르지 않습니다. 이를 수정하려면 문을 다음과 같이 수정해야 합니다.

<code class="sql">create table course (
    course_id varchar(7),
    title varchar(50),
    dept_name varchar(20),
    credits numeric(2,0),
    primary key(course_id),
    foreign key (dept_name) references department(dept_name)
);</code>
로그인 후 복사

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

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