MySQL에서 자동 증가 기능이 있는 복합 기본 키 구현
MySQL InnoDB 테이블은 복합 기본 키를 지원하므로 여러 열을 사용하여 고유한 행을 식별할 수 있습니다. . 그러나 하나의 열만 자동 증가할 수 있으며 기본 키 정의의 일부로 지정해야 한다는 점에 유의하는 것이 중요합니다.
하나의 자동 증가 열이 있는 복합 기본 키를 생성하려고 할 때 두 개의 외래 키를 사용하는 경우 사용자는 "ERROR 1075: 잘못된 테이블 정의입니다. 자동 열은 하나만 있을 수 있으며 키로 정의되어야 합니다."라는 오류가 발생할 수 있습니다.
이 문제를 극복하고 원하는 복합을 구현하려면 기본 키, 트리거 또는 절차가 일반적으로 권장됩니다. 그러나 단순화를 위해 대체 접근 방식은 다음 MySQL 트리거를 사용하는 것입니다.
<code class="sql">DELIMITER $$ CREATE TRIGGER xxx BEFORE INSERT ON issue_log FOR EACH ROW BEGIN SET NEW.sr_no = ( SELECT IFNULL(MAX(sr_no), 0) + 1 FROM issue_log WHERE app_id = NEW.app_id AND test_id = NEW.test_id ); END $$ DELIMITER ;</code>
이 트리거는 동일한 'app_id' 및 'test_id'를 공유하는 새 행에 대해 증가하는 'sr_no' 값을 자동으로 계산하고 할당합니다. ' 값. 이 트리거를 구현하면 자동 증가 열을 통해 원하는 복합 기본 키를 얻을 수 있습니다.
트리거는 데이터 무결성을 보장하고 경합 조건을 방지하기 위해 적절한 처리가 필요하다는 점을 기억하세요. 예상치 못한 동작이나 성능 병목 현상을 방지하려면 트리거를 철저히 테스트하고 유지 관리하는 것이 좋습니다.
위 내용은 MySQL에서 자동 증가 열을 사용하여 복합 기본 키를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!