>  기사  >  데이터 베이스  >  MySQL 오류 1022: 테이블을 생성할 때 중복 키 오류가 발생하는 이유는 무엇입니까?

MySQL 오류 1022: 테이블을 생성할 때 중복 키 오류가 발생하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-28 04:50:30725검색

  MySQL Error 1022: Why Am I Getting a Duplicate Key Error When Creating a Table?

MySQL 오류 1022: 중복 파악

테이블을 생성할 때 MySQL 오류 1022가 발생하면 당황스러울 수 있습니다. 특히 SQL 문이 유효해 보이는 경우에는 더욱 그렇습니다. . 문제를 자세히 살펴보고 근본 원인을 파악해 보겠습니다.

제공된 SQL에는 테이블에 정의된 키가 하나만 있다고 나와 있습니다. 그러나 문제는 외래 키 정의에 있는 것으로 보입니다. 테이블 생성 중에 중복 키를 삽입하려고 하면 MySQL에서 오류 1022가 발생합니다.

이 문제는 외래 키 이름(error_id)이 모델의 다른 곳에 있는 다른 외래 키의 이름과 동일하다는 사실에서 발생합니다. 이를 이해하려면 다음 시나리오를 고려하십시오.

  • 테이블 "Catalog"에는 테이블 "Supplier"를 참조하는 "supplier"라는 외래 키가 포함되어 있습니다.
  • 테이블 "Product"에는 동일한 테이블 "Supplier"를 참조하는 "supplier"라는 외래 키.

이제 두 외래 키가 모두 동일한 이름("supplier")을 갖는 경우 MySQL은 이를 외래에서 "충돌"로 해석합니다. 키 이름. 문제를 해결하려면 각 외래 키가 전체 스키마 내에서 고유한 이름을 가져야 합니다.

예를 들어 다음과 같은 다른 이름을 사용할 수 있습니다.

  • 외래 키에 대해catalog_supplier 테이블 "Catalog"
  • "Product" 테이블의 외래 키에 대한 product_supplier

MySQL은 외래 키 이름을 구별하여 테이블을 생성하는 동안 외래 키 이름을 구별하고 참조 무결성을 올바르게 처리할 수 있습니다. .

위 내용은 MySQL 오류 1022: 테이블을 생성할 때 중복 키 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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