>데이터 베이스 >MySQL 튜토리얼 >테이블을 생성할 때 MySQL 오류 1022(중복 키)가 발생하는 이유는 무엇입니까?

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-30 17:00:12267검색

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

글을 쓸 수 없습니다. 테이블 생성 중 키 중복

중복된 ​​기본 키 항목으로 인해 새 테이블을 생성하려고 할 때 오류 1022가 발생합니다. 쿼리를 검토한 후에도 중복 소스를 식별하는 데 어려움을 겪을 수 있습니다. 더 자세히 조사해 보겠습니다.

제공하신 쿼리에는 "userId" 열의 외래 키로 "iduser"라는 제약 조건이 포함되어 있습니다. 또한 "circleId" 열에 "idcategory"라는 제약 조건을 지정합니다. 이러한 제약 조건 이름이 문제의 근본 원인인 것 같습니다.

제약 조건 및 중복

MySQL의 제약 조건은 특정 테이블뿐만 아니라 전체 데이터베이스에서 고유해야 합니다. 생성 또는 수정 중입니다. 따라서 데이터베이스에 "iduser" 또는 "idcategory" 제약 조건 이름을 활용하는 다른 테이블이나 인덱스가 이미 있을 수 있습니다. 이 충돌로 인해 중복 키 오류가 발생합니다.

중복 제약 조건 식별

이러한 제약 조건이 현재 사용 중인 위치를 확인하려면 다음 쿼리를 실행하세요.

SELECT `TABLE_SCHEMA`, `TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');

이 쿼리는 "iduser" 및 "idcategory" 제약 조건이 있는 테이블과 스키마를 표시합니다.

해결 방법

오류를 해결하려면 중복 제약 조건의 이름을 바꿔야 합니다. "userId" 열의 외래 키 제약 조건에 대해 "fk_user"와 같이 현재 테이블에 특정한 고유 이름을 사용하는 것이 좋습니다. 제약 조건의 이름이 바뀌고 쿼리가 업데이트되면 별도의 작업 없이 테이블을 성공적으로 생성할 수 있습니다. 중복 키 오류입니다.

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

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