MySQL 외래 키 제약 조건: Errno 150 오류 방지
다른 테이블을 참조하는 외래 키를 사용하여 MySQL에서 테이블을 생성하는 동안 다음과 같은 문제가 발생할 수 있습니다. 오류 번호: 150 오류. 이 문제를 해결하려면 다음 지침을 따르는 것이 중요합니다.
-
테이블 순서 확인: 외래 키를 사용하여 하위 테이블을 생성하기 전에 기본 키가 포함된 상위 테이블을 정의하세요.
-
외래 키 지원 활성화: 상위 테이블과 하위 테이블 모두 일반적으로 다음을 사용하여 외래 키 제약 조건을 지원해야 합니다. InnoDB 스토리지 엔진.
-
가장 왼쪽 열 키: 상위 테이블에서 참조되는 열은 키의 가장 왼쪽 열이어야 하며, 이상적으로는 PRIMARY KEY 또는 UNIQUE KEY입니다.
-
기본 키 순서 일치: FK 정의는 다음 측면에서 PK 정의와 일치해야 합니다. 열 순서 및 데이터 유형.
-
올바른 데이터 정렬: 상위 테이블의 PK 열과 하위 테이블의 FK 열은 데이터 유형 및 데이터 정렬 측면에서 일치해야 합니다.
-
기존 데이터 호환성: 하위 테이블에 데이터가 포함된 경우 각 FK 열 값이 상위 테이블의 해당 값과 일치하는지 확인하세요. PK 열.
-
임시 또는 분할된 테이블 방지: TEMPORARY 또는 PARTITIONED 테이블에는 외래 키 제약 조건을 정의할 수 없습니다.
-
Nullable 열: ON DELETE SET NULL 옵션을 사용하는 경우 FK 열은 다음과 같아야 합니다. nullable.
-
고유 제약 조건 이름: 충돌을 피하기 위해 외래 키 제약 조건은 스키마 전체에서 고유한 이름을 가져야 합니다.
-
종속 외래 키: 잘못된 FK가 상위 테이블의 동일한 필드를 참조하는 다른 테이블에 존재합니다. 새 FK를 만들기 전에 일관성을 확인하세요. 문제가 있는 FK를 식별하려면 다음 쿼리를 사용하십시오.
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE CONSTRAINT_SCHEMA = 'your_schema_name'
AND CONSTRAINT_NAME <> 'PRIMARY' AND REFERENCED_COLUMN_NAME IS NOT NULL;
위 내용은 외래 키 제약 조건을 사용할 때 MySQL Errno 150 오류를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!