>데이터 베이스 >MySQL 튜토리얼 >MySQL 테이블을 생성할 때 \'쓸 수 없습니다. 테이블에 중복 키가 있습니다\' 오류(오류 1022)가 나타나는 이유는 무엇입니까?

MySQL 테이블을 생성할 때 \'쓸 수 없습니다. 테이블에 중복 키가 있습니다\' 오류(오류 1022)가 나타나는 이유는 무엇입니까?

DDD
DDD원래의
2024-10-28 04:07:20399검색

Why am I Getting

중복 감지: MySQL 테이블 생성 실패(오류 1022)

MySQL Workbench를 사용하여 테이블을 생성하려고 시도하는 동안 사용자는 두려운 문제에 직면할 수 있습니다. 오류 1022: "쓸 수 없습니다. 테이블에 키가 중복되었습니다." 이 문제는 테이블 생성에 사용되는 SQL 문이 겉으로는 간단해 보이지만 발생합니다. 자세히 살펴보면 문제가 분명해집니다.

범인: 동일한 외래 키 이름

오류 메시지는 동일한 데이터베이스 모델. 이 개념을 이해하려면 다음 비유를 고려하십시오.


  • 비즈니스 세계에서 각 직원은 단일 부서와 연결됩니다.

  • < ;li>마찬가지로 데이터베이스에서 하위 테이블의 각 행은 상위 테이블의 단일 행을 참조해야 합니다.
  • 이 참조 메커니즘은 브리지 역할을 하는 외래 키를 통해 설정됩니다.

이 문제는 서로 다른 테이블에 있는 두 개의 서로 다른 외래 키가 상위 테이블의 동일한 열을 참조할 때 발생합니다. 직원이 동시에 두 부서에서 일할 수 없는 것처럼 하위 테이블 행에는 서로 다른 상위 테이블 행을 가리키는 여러 개의 외래 키가 있을 수 없습니다.

실제적 예

고려하세요. 다음 데이터베이스 모델:


  • 테이블 "Catalog"에는 제품 목록이 포함되어 있습니다.

  • 테이블 "Supplier"에는 공급자 목록입니다.

두 테이블 모두 "Supplier" 테이블을 참조하는 "supplier_id"라는 외래 키를 포함하는 경우 MySQL은 오류 1022를 반환합니다. 이 문제는 외래 키에 고유한 이름을 할당하는 것이 중요합니다.

이름 지정 충돌 해결

오류를 수정하려면 다음 단계를 따르세요.

  1. SQL 문을 열고 외래 키 정의를 찾습니다.
  2. 중복 외래 키 이름을 식별합니다.
  3. 중복 외래 키 이름을 고유한 이름으로 바꿉니다.
  4. 업데이트된 SQL 문을 구현하여 테이블을 생성합니다.

외래 키 내의 이름 충돌을 해결함으로써 원하는 테이블을 성공적으로 생성하고 "쓸 수 없습니다. 테이블에 키가 중복되었습니다." 오류가 발생했습니다.

위 내용은 MySQL 테이블을 생성할 때 \'쓸 수 없습니다. 테이블에 중복 키가 있습니다\' 오류(오류 1022)가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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