>  기사  >  데이터 베이스  >  다음은 기사의 다양한 측면을 강조하는 몇 가지 제목 옵션입니다. 단기 및 일반: * MySQL에 외래 키 제약 조건을 추가할 수 없는 이유는 무엇입니까? * 외래 키 제약 조건 E 문제 해결

다음은 기사의 다양한 측면을 강조하는 몇 가지 제목 옵션입니다. 단기 및 일반: * MySQL에 외래 키 제약 조건을 추가할 수 없는 이유는 무엇입니까? * 외래 키 제약 조건 E 문제 해결

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-26 16:57:03881검색

Here are a few title options, each emphasizing a different aspect of the article:

Short and General:

* Why Can't I Add a Foreign Key Constraint in MySQL? 
* Troubleshooting Foreign Key Constraint Errors in MySQL

More Specific:

* MySQL Foreign Key Con

MySQL의 외래 키 제약 조건 오류: 근본 원인 및 해결 방법

"ERROR 1215(HY000): 외래 키 제약 조건을 추가할 수 없습니다." 오류 MySQL의 두 테이블 사이에 외래 키 참조를 정의할 때 발생합니다. 이 문제를 해결하려면 참조 필드와 외래 키 필드 모두에 대해 특정 기준이 충족되는지 확인하는 것이 중요합니다.

엔진 호환성:
두 필드 모두 다음과 같은 테이블에 있어야 합니다. 동일한 엔진, 일반적으로 InnoDB.

데이터 유형 및 길이:
필드의 데이터 유형 및 길이는 동일해야 합니다. 예를 들어, 참조된 필드가 VARCHAR(20)인 경우 외래 키 필드도 VARCHAR(20)이어야 합니다.

조합:
필드의 조합은 일치해야 합니다. 예를 들어 utf8도 있습니다.

고유성:
상위 테이블의 참조 필드는 고유해야 하거나 하위 테이블의 각 행이 다음을 갖도록 PRIMARY KEY로 선언되어야 합니다. 유효한 참조.

NULL 제약 조건:
외래 키 필드가 NULL 값을 허용하는 경우 참조된 필드도 NULL 값을 허용해야 합니다.

독점 실행:
특정 시나리오에서는 다른 동시 쿼리 없이 외래 키 생성 문만 실행해야 할 수도 있습니다. 이는 트랜잭션을 시작하여 달성할 수 있습니다. 예를 들어:

<code class="sql">BEGIN;
CREATE TABLE course ( ... );
COMMIT;</code>

추가 조치:

  • InnoDB 상태 확인: 보다 구체적인 오류 세부 정보를 얻으려면 SHOW ENGINE INNODB STATUS;를 실행하세요.
  • 외래 키 검사 비활성화: SET FOREIGN_KEY_CHECKS=0을 사용하여 외래 키 검사를 일시적으로 비활성화합니다. 테이블 생성을 허용하지만 외래 키 제약 조건이 충족되지 않으면 데이터 삽입이 여전히 실패할 수 있습니다.
  • ON DELETE CASCADE / ON UPDATE CASCADE를 사용하세요. 이 옵션을 사용하면 상위 테이블의 참조 필드가 수정되면 하위 테이블이 자동으로 삭제되거나 업데이트됩니다.

성공적인 외래 키 제약 조건 생성을 위해서는 이러한 모든 조건이 충족되는지 확인하는 것이 중요합니다.

위 내용은 다음은 기사의 다양한 측면을 강조하는 몇 가지 제목 옵션입니다. 단기 및 일반: * MySQL에 외래 키 제약 조건을 추가할 수 없는 이유는 무엇입니까? * 외래 키 제약 조건 E 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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