MySQL에서 자동 증가 열을 사용하여 복합 기본 키를 구현하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-04 08:55:01
원래의
749명이 탐색했습니다.

How to implement a composite primary key with an auto-increment column in MySQL?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿