>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 자동 증가를 유지하면서 다른 열을 기본 키로 사용하려면 어떻게 해야 합니까?

MySQL에서 자동 증가를 유지하면서 다른 열을 기본 키로 사용하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-03 16:02:03718검색

How Can I Use a Different Column as Primary Key While Maintaining Auto-Increment in MySQL?

MySQL에서 자동 증가를 유지하고 다른 열을 기본 키로 사용

MySQL에서 자동 증가 열이 있는 테이블을 생성할 때 , 기본 동작은 해당 열이 기본 키가 되는 것입니다. 그러나 쿼리가 주로 다른 열을 사용하여 행을 식별하는 경우 이 동작은 성능 문제로 이어질 수 있습니다.

다음 시나리오를 고려하십시오. 자동 증가 기본 키로 id라는 열과 id라는 열이 있는 테이블을 생성합니다. 회원을 식별하기 위해 쿼리에 사용되는 고유한 memberid입니다. 이 경우 성능상의 이유로 memberid를 기본 키로 사용하는 것이 이상적이지만 그렇게 하면 오류가 발생합니다.

1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

이 문제를 해결하기 위한 가장 좋은 해결책은 id 열을 유지하는 것입니다. memberid를 기본 키로 정의하면서 자동 증가 기능을 유지합니다. 이는 아래와 같이 id 열에 인덱스(키)를 생성하여 달성할 수 있습니다.

CREATE TABLE members ( 
  id int(11)  UNSIGNED NOT NULL AUTO_INCREMENT,
  memberid VARCHAR( 30 ) NOT NULL , 
  `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , 
  firstname VARCHAR( 50 ) NULL , 
  lastname VARCHAR( 50 ) NULL , 
  PRIMARY KEY (memberid) ,
  KEY (id)                          --- or:    UNIQUE KEY (id)
) ENGINE = MYISAM; 

이 접근 방식을 사용하면 memberid를 기본으로 사용하면서 성능 목적으로 자동 증가 열을 유지할 수 있습니다. 효율적인 쿼리를 위한 핵심입니다.

위 내용은 MySQL에서 자동 증가를 유지하면서 다른 열을 기본 키로 사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.