이 시나리오에는 id 열이 시각적 개체에 대한 자동 증가 필드 역할을 하는 MySQL 테이블이 포함됩니다. 편의상 memberid 열은 실제 고유 키 역할을 합니다. 그러나 PRIMARY KEY(memberid)를 사용하여 테이블을 정의하려고 하면 자동 열이 하나만 있을 수 있으며 키여야 한다는 오류(1075)가 발생합니다.
문제를 해결하려면 인덱스(키)가 정의된 경우 PRIMARY KEY가 아닌 자동 증가 열을 가질 수 있습니다. 수정된 테이블 정의는 다음과 같습니다.
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;
id 열에 KEY 또는 UNIQUE KEY 인덱스를 추가하면 memberid 열이 기본 키가 되는 동안 자동 증가 기능이 유지되므로 memberid 값을 기반으로 효율적인 쿼리가 가능합니다.
최선의 선택은 성능과 디스크 공간의 상대적 중요성에 따라 달라집니다. 성능이 가장 중요한 경우 자동 증가 ID 열을 유지하고 memberid에 대한 인덱스를 사용하면 균형이 유지됩니다.
그러나 디스크 공간이 중요한 문제인 경우 id 열을 모두 제거하고 memberid 열을 기본 키와 자동으로 사용하는 것이 좋습니다. -증분 필드. 이 접근 방식은 향상된 공간 활용을 위해 일부 성능을 희생합니다. 궁극적으로 성능과 공간 사이의 선택은 애플리케이션의 특정 요구 사항에 따라 달라집니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3