MySQL InnoDB: 비기본 키 자동 증가
MySQL InnoDB에서는 비기본 키 자동 증가가 가능합니다. 열이지만 그렇게 하는 것은 일반적으로 그렇지 않습니다. 권장됩니다.
질문:
기본이 아닌 키, 특히 book_comments 테이블의 comment_id 열을 자동으로 증가시킬 수 있습니까?
대안:
질문자 자동 증가 비기본 키 사용에 대한 두 가지 대안을 제안합니다.
그러나 이러한 대안에는 불필요한 인덱스 오버헤드가 추가되거나 테이블 크기가 크게 증가하는 등의 단점이 있습니다.
답변:
예, 해당 열에 인덱스를 생성하여 기본 키가 아닌 키를 자동 증가시킬 수 있습니다. 다음 예에서는 자동 증가 testInc 열이 있는 테이블을 생성합니다.
<code class="sql">CREATE TABLE `test` ( `testID` int(11) NOT NULL, `string` varchar(45) DEFAULT NULL, `testInc` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`testID`), KEY `testInc` (`testInc`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;</code>
그러나 전문가들은 이러한 관행을 강력히 권고합니다. 보다 적절한 접근 방식은 comment_id를 기본 키로 만들고 (book_id, timestamp, user_id)의 고유 인덱스를 통해 무결성을 강화하는 것입니다. 이 접근 방식은 테이블에 대한 적절한 기본 키를 제공하고 최소 놀라움의 원칙을 준수합니다.
위 내용은 MySQL InnoDB에서 기본이 아닌 키를 자동 증가시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!