MySQL의 복합 키 자동 증가: 종합 가이드
관계형 데이터베이스로 작업할 때 테이블에 필요한 시나리오를 접하는 것이 일반적입니다. 여러 열로 구성된 복합 키. MySQL에서 복합 키를 구현하려면 레코드를 고유하게 식별하기 위해 자동 증가 값을 사용해야 하는 경우가 있습니다.
두 개의 외래 키('app_id' 및 '테스트_ID'). 이러한 외래 키의 각 고유 조합에 대해 추가 식별을 제공하기 위해 자동 증가 열('sr_no')이 필요합니다. 이 설정에서는 세 열('app_id', 'test_id' 및 'sr_no')에 복합 키가 필요합니다.
이 복합 키를 구현하려면 처음에 다음과 유사한 SQL 문을 사용해 볼 수 있습니다.
`CREATE TABLE issue_log (
sr_no INT NOT NULL AUTO_INCREMENT,
app_id INT NOT NULL,
test_id INT NOT NULL,
issue_name VARCHAR(255) NOT NULL,
PRIMARY KEY (app_id, test_id, sr_no)
);`
그러나 이 쿼리를 실행하면 "잘못된 테이블 정의입니다. 자동 열은 하나만 있을 수 있으며 반드시 있어야 합니다."라는 오류 메시지가 표시됩니다. 키로 정의됩니다." 이 오류는 MySQL이 테이블당 하나의 자동 증가 열만 허용한다는 사실에서 발생합니다.
이 문제는 InnoDB 스토리지 엔진의 한계로 인해 발생합니다. InnoDB 테이블에는 모든 기본 키를 인덱싱해야 합니다. 즉, 복합 기본 키에 자동 증가 열을 포함하면 성능이 저하될 수 있습니다.
이 문제를 극복하고 원하는 결과를 얻으려면 다음 중 하나를 수행할 수 있습니다.
트리거 또는 프로시저가 성능에 약간의 영향을 미칠 수 있으므로 요구 사항을 고려하는 것이 중요합니다. 적절한 솔루션을 선택하기 전에 데이터의 양을 확인하세요.
위 내용은 MySQL에서 자동 증가 복합 키를 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!