>  기사  >  데이터 베이스  >  mysql이 외래 키를 추가하는데 실패하면 어떻게 해야 할까요?

mysql이 외래 키를 추가하는데 실패하면 어떻게 해야 할까요?

藏色散人
藏色散人원래의
2023-02-16 10:15:573430검색

mysql 외래 키 추가 실패에 대한 해결 방법: 1. 두 필드의 유형이나 크기가 일치하는지 확인하고 수정합니다. 2. 외래 키가 설정된 필드에 대한 인덱스를 생성합니다. 4. 외래 키 이름이 고유한지 확인하고 수정합니다. 5. cascade 속성 값을 수정하거나 null 등을 허용하도록 필드 속성을 설정합니다.

mysql이 외래 키를 추가하는데 실패하면 어떻게 해야 할까요?

이 튜토리얼의 운영 환경: Windows 10 시스템, MySQL 버전 5.7, Dell G3 컴퓨터.

mysql이 외래 키를 추가하지 못하면 어떻게 해야 하나요?

MySQL 외래키 생성 실패 이유

먼저 외래키와 관련된 여러 테이블에 데이터를 삽입한 경우 외래키 삽입에 실패할 수 있다

MySQL에서 외래키 생성 시 문제 자주 발생하고 실패하는 이유는 MySQL에 주의해야 할 세부 사항이 많기 때문입니다. 정보를 요약하고 검토하여 다음과 같은 일반적인 이유를 나열했습니다.

1. 두 필드의 유형이나 크기가 엄격하게 일치하지 않습니다. 예를 들어, int(10)인 경우 외래 키도 int(11)가 아닌 int(10)로 설정되어야 하며tinyint가 아니어야 합니다. 또한 두 필드 중 하나가 서명되었는지, 다른 필드가 서명되지 않았는지 확인해야 합니다(예: 서명되지 않음). 두 필드는 서명 및 서명되지 않음에 대한 자세한 내용을 참조하세요. Verysimple.com/blog/?p=57

2. 외래 키를 설정하려는 필드가 색인화되지 않았거나 기본 키가 아닙니다. 그 중 하나가 기본 키가 아닌 경우 먼저 해당 키에 대한 인덱스를 생성해야 합니다.

3. 테이블 중 한두 개는 MyISAM 엔진 테이블입니다. 외래 키 제약 조건을 사용하려면 테이블이 InnoDB 엔진이어야 합니다. (실제로 두 테이블 모두 MyISAM 엔진이면 이 오류는 전혀 발생하지 않지만 외래 키는 생성되지 않고 인덱스만 생성됩니다. 생성됨) 테이블의 엔진 종류를 확인해야 합니다.

4. 외래 키 이름은 반복될 수 없습니다. 데이터베이스를 확인하여 외래 키 이름이 고유한지 확인하거나 키 이름 뒤에 임의의 문자 몇 개를 추가하여 이것이 원인인지 테스트해야 합니다.

5. ON DELETE SET NULL을 설정했을 수 있지만 관련 키 필드는 NOTS NULL 값으로 설정되어 있습니다. cascade 속성 값을 수정하거나 필드 속성을 null을 허용하도록 설정하여 문제를 해결할 수 있습니다.

6. 문자 집합 및 대조 옵션이 테이블 수준과 필드 수준에서 일치하는지 확인하세요.

7. default=0과 같이 외래 키에 기본값을 설정했을 수 있습니다.

8. ALTER 문에 구문 오류가 있습니다.

오류가 발생하면 데이터베이스 테이블과 필드의 디자인을 주의 깊게 확인하세요. 또한 오류 가능성을 줄일 수 있는 데이터베이스를 설계하고 생성하는 도구를 모든 사람이 사용해 볼 것을 권장합니다.

추천 학습: "MySQL 비디오 튜토리얼"

위 내용은 mysql이 외래 키를 추가하는데 실패하면 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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