>데이터 베이스 >MySQL 튜토리얼 >외래 키 제약 조건을 사용할 때 MySQL Errno 150 오류를 방지하는 방법은 무엇입니까?

외래 키 제약 조건을 사용할 때 MySQL Errno 150 오류를 방지하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-21 19:37:16630검색

How to Avoid MySQL Errno 150 Errors When Using Foreign Key Constraints?

MySQL 외래 키 제약 조건: Errno 150 오류 방지

다른 테이블을 참조하는 외래 키를 사용하여 MySQL에서 테이블을 생성하는 동안 다음과 같은 문제가 발생할 수 있습니다. 오류 번호: 150 오류. 이 문제를 해결하려면 다음 지침을 따르는 것이 중요합니다.

  1. 테이블 순서 확인: 외래 키를 사용하여 하위 테이블을 생성하기 전에 기본 키가 포함된 상위 테이블을 정의하세요.
  2. 외래 키 지원 활성화: 상위 테이블과 하위 테이블 모두 일반적으로 다음을 사용하여 외래 키 제약 조건을 지원해야 합니다. InnoDB 스토리지 엔진.
  3. 가장 왼쪽 열 키: 상위 테이블에서 참조되는 열은 키의 가장 왼쪽 열이어야 하며, 이상적으로는 PRIMARY KEY 또는 UNIQUE KEY입니다.
  4. 기본 키 순서 일치: FK 정의는 다음 측면에서 PK 정의와 일치해야 합니다. 열 순서 및 데이터 유형.
  5. 올바른 데이터 정렬: 상위 테이블의 PK 열과 하위 테이블의 FK 열은 데이터 유형 및 데이터 정렬 측면에서 일치해야 합니다.
  6. 기존 데이터 호환성: 하위 테이블에 데이터가 포함된 경우 각 FK 열 값이 상위 테이블의 해당 값과 일치하는지 확인하세요. PK 열.
  7. 임시 또는 분할된 테이블 방지: TEMPORARY 또는 PARTITIONED 테이블에는 외래 키 제약 조건을 정의할 수 없습니다.
  8. Nullable 열: ON DELETE SET NULL 옵션을 사용하는 경우 FK 열은 다음과 같아야 합니다. nullable.
  9. 고유 제약 조건 이름: 충돌을 피하기 위해 외래 키 제약 조건은 스키마 전체에서 고유한 이름을 가져야 합니다.
  10. 종속 외래 키: 잘못된 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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