> 데이터 베이스 > MySQL 튜토리얼 > MySQL InnoDB에서 기본이 아닌 키를 자동 증가시키는 방법은 무엇입니까?

MySQL InnoDB에서 기본이 아닌 키를 자동 증가시키는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-30 01:47:29
원래의
984명이 탐색했습니다.

How to Auto-Increment Non-Primary Keys in MySQL InnoDB?

MySQL InnoDB: 기본이 아닌 키 자동 증가

MySQL의 InnoDB 스토리지 엔진은 기본 키에 대한 값 자동 증가를 허용합니다. 그러나 기본 키가 아닌 자동 증가는 직접 지원되지 않습니다.

특정 질문: 테이블 구조

"book_comments"에 대해 다음 테이블 구조를 고려하십시오.

book_id     medium_int
timestamp   medium_int
user_id     medium_int
vote_up     small_int
vote_down   small_int
comment     text
comment_id  medium_int
로그인 후 복사

기본이 아닌 키의 자동 증가가 가능합니까?

예, 기본이 아닌 키의 자동 증가가 가능합니다. 하지만 자동 증가할 열에 인덱스를 생성해야 합니다.

권장 솔루션

비기본 키 자동 증가 가능성에도 불구하고 권장되는 해결책은 데이터 무결성을 위해 "comment_id"를 기본 키로 만들고 "book_id", "timestamp" 및 "user_id" 조합에 대한 고유 인덱스를 생성하는 것입니다.

추가 고려 사항

질문에 언급된 대체 제안에는 단점이 있습니다.

  • "comment_id"를 기본 키로 만들고 고유 인덱스 생성: 이 솔루션은 추가 인덱스를 도입합니다. , 이는 바람직하지 않을 수 있습니다.
  • "book_comments_votes"의 기본 키로 "comment_id"를 바꾸면: 이렇게 하면 "book_comments_votes"의 크기가 크게 늘어나고 성능에 영향을 미칠 수 있습니다.

따라서 가장 효율적이고 강력한 솔루션은 "comment_id"를 기본 키로 사용하고 "book_id", "timestamp" 및 "user_id"에 고유 인덱스를 생성하는 권장 접근 방식을 따르는 것입니다.

위 내용은 MySQL InnoDB에서 기본이 아닌 키를 자동 증가시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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