집 >데이터 베이스 >MySQL 튜토리얼 >테이블을 생성할 때 MySQL 오류 1022(중복 키)가 발생하는 이유는 무엇입니까?
글을 쓸 수 없습니다. 테이블 생성 중 키 중복
중복된 기본 키 항목으로 인해 새 테이블을 생성하려고 할 때 오류 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!