MySQL에서 기본 키가 아닌 필드를 자동으로 증가시켜야 합니다.
지금은 테이블이 있는데 그 테이블의 주요 키는auto_increment
field. 그러나 기본 키를 다음과 같이 설정해야 합니다.username
,date
(날짜와 중복되는 사용자 이름이 있을 수 없도록 하기 위해).
필요합니다.auto_increment
그러나 필드는 행 정보를 변경합니다(삭제 및 삭제).
이 상황은 보통 어떻게 됩니까?
감사합니다!
(사용자 이름, 날짜) 의 합성에 고유한 인덱스를 설정하기만 하면 됩니다.
ALTER TABLE `table` ADD UNIQUE INDEX `name` (`username`, `date`);
아니면, 당신은 다음과 같이 시도할 수 있습니다.
ALTER TABLE `table` DROP PRIMARY KEY, ADD PRIMARY KEY(`username`,`date`);
그리고 후자의 경우에는 NOT NULL로 선언되어야 한다고 생각합니다.
이것은 오래된 질문이라는 것을 알고 있습니다. 여기 제가 문제를 해결한 방법이 있습니다.
ALTER TABLE `student_info` ADD `sn` INT(3) UNIQUE NOT NULL AUTO_INCREMENT FIRST
다음과 같은 것을 사용합니다.
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
user VARCHAR(32) NOT NULL,
thedate DATE NOT NULL,
UNIQUE(user,thedate)
);
테이블을 이미 가지고 있고 사용자+날짜에 고유한 제약 조건을 추가하려면 실행합니다.
ALTER TABLE users ADD UNIQUE KEY user_date_idx (user, thedate);
대신 현재 기본 키를 고유 키로 변경합니다.
ALTER TABLE table DROP PRIMARY KEY, ADD UNIQUE KEY(username,date);
auto_increment는 이후 문제없이 정상적으로 작동합니다.또한 auto_increment 필드에 고유한 키를 배치하여 행 처리에 사용해야 합니다.
ALTER TABLE table ADD UNIQUE KEY(id);
언급URL : https://stackoverflow.com/questions/1151314/i-need-to-auto-increment-a-field-in-mysql-that-is-not-primary-key
'programing' 카테고리의 다른 글
package-lock.json의 취약한 npm 패키지를 package.json에 나열되지 않은 package-lock.json에서 수정하려면 어떻게 해야 합니까? (0) | 2023.09.16 |
---|---|
SQL에서 합산 및 그룹화에 따른 결과 차이 (0) | 2023.09.16 |
j효과 추가를 사용한 jQuery (0) | 2023.09.16 |
MS Visual C++에서 VLA(Variable Length Array) 활성화? (0) | 2023.09.16 |
안드로이드 프로젝트에서 사용하지 않는 문자열을 쉽게 찾을 수 있는 방법이 있습니까? (0) | 2023.09.16 |