mysql 오류 1022는 중복된 외래 키 이름으로 인해 발생합니다. 해결 방법은 다음과 같습니다. 1. "select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME='...'" 명령을 사용하여 중복된 외래 키 이름을 바꿉니다. 키 이름을 지정하세요.
이 튜토리얼의 운영 환경: Windows 10 시스템, MySQL 버전 5.7, Dell G3 컴퓨터.
mysql 오류 1022가 발생하면 어떻게 해야 하나요?
mysql 오류 오류 코드: 1022. 'xxx' 테이블에 중복 키를 쓸 수 없습니다.
설명: 이 오류는 중복된 외래 키 이름입니다.
사용된 중복된 외래 키 이름을 찾으세요. sql은 다음과 같습니다.
select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME='重复的外键名称'
문제 없으면 이름만 바꾸시면 됩니다.
관련 확장:
1 외래 키 정의
외래 키는 다른 테이블의 기본 키에 포함된 테이블의 열입니다.
외래 키는 한 테이블의 열을 다른 테이블의 기본 키를 가리켜 두 테이블을 연결하는 인덱스 유형이기도 합니다.
테이블에는 하나의 외래 키가 있을 수도 있고 여러 테이블과 연결된 여러 개의 외래 키가 있을 수도 있습니다.
2 외래 키의 역할
외래 키의 주요 역할은 데이터의 일관성과 무결성을 보장하고 데이터 중복성을 줄이는 것입니다.
주로 다음 두 가지 측면에 반영됩니다.
실행 방지
테이블에서 새 행을 삽입하고 해당 외래 키 값이 기본 테이블의 기본 키 값이 아니므로 삽입이 방지됩니다.
테이블의 외래 키 값을 수정하세요. 새 값이 기본 테이블의 기본 키 값이 아닌 경우 수정이 차단됩니다.
마스터 테이블에서 삭제된 행이 슬레이브 테이블에 존재하면 해당 행의 기본 키 값이 삭제되지 않습니다. (삭제하려면 먼저 슬레이브 테이블에서 해당 행을 삭제해야 합니다.)
기본 테이블은 기본 키 값을 수정합니다. 슬레이브 테이블에 이전 값이 존재하면 수정이 차단됩니다. (수정하려면 먼저 슬레이브 테이블에서 해당 행을 삭제해야 합니다.)
계단식 실행
메인 테이블의 행을 삭제하고 슬레이브 테이블의 관련 행을 함께 삭제합니다.
메인 테이블의 기본 키 값을 수정하고, 슬레이브 테이블의 관련 행의 외래 키 값도 함께 수정합니다.
3 외래 키 생성 제한
상위 테이블은 데이터베이스에 이미 존재하거나 현재 생성 중인 테이블이어야 합니다.
후자의 경우, 상위 테이블과 하위 테이블은 동일한 테이블입니다. 이러한 테이블을 자기 참조 테이블이라고 하며, 이러한 구조를 자기 참조 무결성이라고 합니다.
상위 테이블에 기본 키를 정의해야 합니다.
외래 키의 열 수는 상위 테이블의 기본 키 열 수와 동일해야 합니다.
두 테이블은 InnoDB 테이블이어야 합니다. MyISAM 테이블은 현재 외래 키를 지원하지 않습니다.
외래 키 열은 인덱싱되어야 합니다. MySQL 4.1.2 이상 버전에서는 외래 키를 설정할 때 자동으로 인덱스를 생성하지만 이전 버전에서는 명시적으로 생성해야 합니다.
외래 키 관계에 있는 두 테이블의 열은 유사한 데이터 형식을 가져야 합니다. 즉, 서로 변환할 수 있는 열입니다. 예를 들어 int와tinyint는 사용할 수 있지만 int와 char는 사용할 수 없습니다.
추천 학습: "MySQL 비디오 튜토리얼"
위 내용은 mysql 오류 1022 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!