이 시나리오에는 id 열이 시각적 개체에 대한 자동 증가 필드 역할을 하는 MySQL 테이블이 포함됩니다. 편의상 memberid 열은 실제 고유 키 역할을 합니다. 그러나 PRIMARY KEY(memberid)로 테이블을 정의하려고 하면 자동 열이 하나만 있을 수 있고 키여야 한다는 오류(1075)가 발생합니다.
이 문제를 해결하려면 인덱스(키)가 정의된 경우 PRIMARY KEY가 아닌 자동 증가 열을 가질 수 있습니다. 수정된 테이블 정의는 다음과 같습니다.
<code class="sql">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;</code>
id 열에 KEY 또는 UNIQUE KEY 인덱스를 추가하면 memberid 열이 기본 키가 되는 동안 자동 증가 기능이 유지되므로 memberid 값.
최선의 선택은 성능과 디스크 공간의 상대적 중요성에 따라 달라집니다. 성능이 가장 중요한 경우 자동 증가 ID 열을 유지하고 memberid에 대한 인덱스를 사용하면 균형이 유지됩니다.
그러나 디스크 공간이 중요한 문제인 경우 id 열을 모두 제거하고 memberid 열을 기본 키와 자동으로 모두 사용하는 것이 좋습니다. -증분 필드. 이 접근 방식은 향상된 공간 활용을 위해 일부 성능을 희생합니다. 궁극적으로 성능과 공간 사이의 선택은 애플리케이션의 특정 요구 사항에 따라 달라집니다.
위 내용은 MySQL에서 기본 키가 아닌 자동 증가 열이 존재할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!