"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MySQL 오류 1215: \"외래 키 제약 조건을 추가할 수 없습니다\"가 나타나는 이유는 무엇입니까?

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

2024-11-04에 게시됨
검색:685

 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" 필드에 대한 데이터 유형 사양이 부족하기 때문에 올바르지 않습니다. 이를 수정하려면 명령문을 다음과 같이 수정해야 합니다.

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)
);
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3